- ベストアンサー
エクセルで指定日一か月前になると別sheetに名前と指定日を表示する方
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
あれっ,書きかけの途中だった版の方をコピーして回答に貼ってしまったみたいです。 訂正は: =IF(ROW(A1)>COUNTIF(Sheet2!$B:$B,"<="&DATE(YEAR(TODAY()),MONTH(TODAY())+1,DAY(TODAY()))),"",INDEX(Sheet2!A:A,SMALL(IF(Sheet2!$B$1:$B$25<=DATE(YEAR(TODAY()),MONTH(TODAY())+1,DAY(TODAY())),ROW(Sheet2!$B$1:$B$25),9999),ROW(A1)))) をコントロールキーとシフトキーを押しながらEnter,下にコピー,右にコピー。 失礼しました。 なお, >指定日一カ月前になるとsheet1のA1~A10,B1~B10に名前と指定日が表示されるようにしたい であれば シート1のA1: =IF(Sheet2!$B1<=DATE(YEAR(TODAY()),MONTH(TODAY())+1,DAY(TODAY())),Sheet2!A1,"") を下にコピー,B列にもコピーでも良いです。 #こっちの方が簡単で間違いも無いので,通常はこっちのやり方をします。無理に「隙間を詰めて並べたい」とか欲を出す(たいへん良く寄せられる質問ですが)と,前述みたいなイミフメイをこねくる羽目になります。
その他の回答 (1)
- keithin
- ベストアンサー率66% (5278/7941)
随意のセルに =IF(ROW(A1)>COUNTIF(Sheet2!$B:$B,"<="&DATE(YEAR(TODAY(),MONTH(TODAY())+1,DAY(TODAY())) ,"",INDEX(Sheet2!A:A,SMALL(IF(Sheet2!$B$1:$B$25<=DATE(YEAR(TODAY(),MONTH(TODAY())+1,DAY(TODAY())),ROW(Sheet2!$B$1:$B$25),9999),ROW(A1)))) を記入してコントロールキーとシフトキーを押しながらEnterで入力する。 下にコピー,右にコピーする。 日付列には日付の書式を忘れずに付けておく。
補足
ありがとうございます。 さっそくチャレンジしてみたところ、「この関数に対して、多すぎる引数が入力されています。」 って出てしまいます。 何かやり方が間違ってるのでしょうか? 宜しくお願い致します。
お礼
早速ありがとうございます。 希望通りうまくいきました(^^ 参考書見ながらこの式の意味を理解できるように頑張りたいと思います。 本当にありがとうございました!