一例ですが、参考にして下さい。
ワークエリアを使わないで関数のみで行う方法ですが
スッキリする反面、少々面倒臭いです。
A1に表示させる年月の「平成 23 年 3 月」というように
間にスペースを入れて入力します。
以下をそれぞれのセルにコピペする
A2="1("&MID("月火水木金土日",MOD(WEEKDAY(DATE(MID(TRIM(A1),4,2)+1988,MID(TRIM(A1),9,2),1),3)+0,7)+1,1)&")"
B2="2("&MID("月火水木金土日",MOD(WEEKDAY(DATE(MID(TRIM(A1),4,2)+1988,MID(TRIM(A1),9,2),1),3)+1,7)+1,1)&")"
C2="3("&MID("月火水木金土日",MOD(WEEKDAY(DATE(MID(TRIM(A1),4,2)+1988,MID(TRIM(A1),9,2),1),3)+2,7)+1,1)&")"
D2="4("&MID("月火水木金土日",MOD(WEEKDAY(DATE(MID(TRIM(A1),4,2)+1988,MID(TRIM(A1),9,2),1),3)+3,7)+1,1)&")"
E2="5("&MID("月火水木金土日",MOD(WEEKDAY(DATE(MID(TRIM(A1),4,2)+1988,MID(TRIM(A1),9,2),1),3)+4,7)+1,1)&")"
F2="6("&MID("月火水木金土日",MOD(WEEKDAY(DATE(MID(TRIM(A1),4,2)+1988,MID(TRIM(A1),9,2),1),3)+5,7)+1,1)&")"
G2="7("&MID("月火水木金土日",MOD(WEEKDAY(DATE(MID(TRIM(A1),4,2)+1988,MID(TRIM(A1),9,2),1),3)+6,7)+1,1)&")"
H2="8("&MID("月火水木金土日",MOD(WEEKDAY(DATE(MID(TRIM(A1),4,2)+1988,MID(TRIM(A1),9,2),1),3)+0,7)+1,1)&")"
セル=”*( この*の部分が日付になります。 例:D2="4(" 4日
これを28日までドラッグしてあげればご希望の動作が実現し、
29日にあたるAC2セルに
=IF(DATE(MID(TRIM(A1),4,2)+1988,MID(TRIM(A1),9,2)+1,1)-DATE(MID(TRIM(A1),4,2)+1988,MID(TRIM(A1),9,2),1)>=29,"29("&MID("月火水木金土日",MOD(WEEKDAY(DATE(MID(TRIM(A1),4,2)+1988,MID(TRIM(A1),9,2),1),3)+0,7)+1,1)&")","")
30にあたるAD2セルに
=IF(DATE(MID(TRIM(A1),4,2)+1988,MID(TRIM(A1),9,2)+1,1)-DATE(MID(TRIM(A1),4,2)+1988,MID(TRIM(A1),9,2),1)>=30,"30("&MID("月火水木金土日",MOD(WEEKDAY(DATE(MID(TRIM(A1),4,2)+1988,MID(TRIM(A1),9,2),1),3)+1,7)+1,1)&")","")
31日にあたるAE2セルに
=IF(DATE(MID(TRIM(A1),4,2)+1988,MID(TRIM(A1),9,2)+1,1)-DATE(MID(TRIM(A1),4,2)+1988,MID(TRIM(A1),9,2),1)>=30,"30("&MID("月火水木金土日",MOD(WEEKDAY(DATE(MID(TRIM(A1),4,2)+1988,MID(TRIM(A1),9,2),1),3)+1,7)+1,1)&")","")
全てコピペします。
これで、A1を修正するだけで全ての曜日と、月に存在しない(2月ならば29~31日)は非表示に
出来ます。
ご参考までに。
お礼
ありがとうございました。 最高です