• ベストアンサー

エクセル

表示するコードを教えてもらい画像のように作成できることが できたのですが A2 =IFERROR(INDEX(($A$1&$B$1&"1日")*1+ROW($A$1:$A$31)-1, SMALL(INDEX(MOD(WEEKDAY(($A$1&$B$1&"1日")*1+ROW ($A$1:$A$31)-1,1),2)*50+ROW($A$1:$A$31),0),ROW(A1))),"") B2=A2で作成しています 2月の時だけ次の月の最初の部分が出ることがあります どうにかならないでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.1

>表示するコードを教えてもらい画像のように作成できることができたのですが マクロじゃないので「コード」ではなく「数式」です。 A2セルの数式内で使用している ROW($A$1:$A$31) を可変にすることで対応します。 ROW($A$1:$A$31)     ↓ ROW(OFFSET($A$1,0,0,DAY(EOMONTH(($A$1&$B$1&"1日")*1,0)))) または ROW(INDIRECT("$a$1:$a$"&DAY(EOMONTH(($A$1&$B$1&"1日")*1,0)))) 従って、A2セルの数式を次のように修正します。 =IFERROR(INDEX(($A$1&$B$1&"1日")*1+ROW($A$1:$A$31)-1,SMALL(INDEX(MOD(WEEKDAY(($A$1&$B$1&"1日")*1+ROW(OFFSET($A$1,0,0,DAY(EOMONTH(($A$1&$B$1&"1日")*1,0))))-1,1),2)*50+ROW(OFFSET($A$1,0,0,DAY(EOMONTH(($A$1&$B$1&"1日")*1,0)))),0),ROW(A1))),"") または =IFERROR(INDEX(($A$1&$B$1&"1日")*1+ROW($A$1:$A$31)-1,SMALL(INDEX(MOD(WEEKDAY(($A$1&$B$1&"1日")*1+ROW(INDIRECT("$a$1:$a$"&DAY(EOMONTH(($A$1&$B$1&"1日")*1,0))))-1,1),2)*50+ROW(INDIRECT("$a$1:$a$"&DAY(EOMONTH(($A$1&$B$1&"1日")*1,0)))),0),ROW(A1))),"") 尚、外側のINDEX関数の範囲(($A$1&$B$1&"1日")*1+ROW($A$1:$A$31)-1)のROW関数については変更なしでも不都合は起らないはずです。

jikkenn
質問者

お礼

ありがとうございます 出来ました。

関連するQ&A

専門家に質問してみよう