• ベストアンサー

エクセルで指定日一か月前になると別sheetに名前と指定日を表示する方

エクセルで指定日一か月前になると別sheetに名前と指定日を表示する方法は可能でしょうか? エクセル2007を使用しています。 sheet2のA1~A10まで名前を入力していて、B1~B10まで各個人の指定日を入力しています。 そこで各個人の指定日一カ月前になるとsheet1のA1~A10,B1~B10に名前と指定日が表示されるようにしたいと思っています。 (指定日一カ月前になった者の名前と指定日のみです) こういう事は可能でしょうか? 参考書片手に勉強中ですが、複雑な関数になりそうなのでご教授宜しくお願い致します。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.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列にもコピーでも良いです。 #こっちの方が簡単で間違いも無いので,通常はこっちのやり方をします。無理に「隙間を詰めて並べたい」とか欲を出す(たいへん良く寄せられる質問ですが)と,前述みたいなイミフメイをこねくる羽目になります。

ran37
質問者

お礼

早速ありがとうございます。 希望通りうまくいきました(^^ 参考書見ながらこの式の意味を理解できるように頑張りたいと思います。 本当にありがとうございました!

その他の回答 (1)

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

随意のセルに =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で入力する。 下にコピー,右にコピーする。 日付列には日付の書式を忘れずに付けておく。

ran37
質問者

補足

ありがとうございます。 さっそくチャレンジしてみたところ、「この関数に対して、多すぎる引数が入力されています。」 って出てしまいます。 何かやり方が間違ってるのでしょうか? 宜しくお願い致します。

関連するQ&A