• ベストアンサー

エクセル 条件の合うセルに自動入力するには

多分、関数だけではできないと思いますが教えて下さい。   A B C D E F G H I J K 1 08/4 08/5 08/6 2 08  4  1 09 3 31 月 1000 3 08  5  1 09 4 30 年 18000 4 08  6  1 09 5 30 四半期 1500 A列~C列:年月日 D列~F列:年月日 G列:月/年/四半期 H列:お金  H2⇒毎月1000円と言う意味  H3⇒年間18000円と言う意味(自動で毎月にする)  H4⇒四半期1500円と言う意味(自動で毎月にする) やりたいこと! A列~H列へデータを投入すると (1)A2、B2に該当するI2から、D2、E2の該当するT2まで1000を自動投入 (2)A3、B3に該当するJ3から、D3、E3の該当するU3まで1500を自動投入 (3)A4、B4に該当するK4から、D4、E4の該当するV4まで 500を自動投入 というようなことはできないでしょうか? そして、下のようになればいいのですが...。   A B C D E F G H I J K 1 08/4 08/5 08/6 2 08  4  1 09 3 31 月 1000 1000 1000 1000 3 08  5  1 09 4 30 年 18000 1500 1500 4 08  6  1 09 5 30 四半期 1500 500 もともとの表の作りも悪いのかもしれませんので、表の作りを変えるのは問題ありません。 例えば ・年月はA列、B列に分けずに1つのセルでも問題なし。 ・逆にI1、J1はセルを分けても問題なし。 ただし、 ・I1からJ1、K1・・・は08/4から10/3の2年間程度あるものとする。 できるのでしょうか。 よろしくお願いします。

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

  • ベストアンサー
noname#70958
noname#70958
回答No.1

1行目の見出しをどういう形式で入れるかによってアプローチが変わってくると思いますが、 とりあえずこんな感じでいかがでしょう? 1.  I1セルに、日付【 2008/4/1 】を入力し、セルの表示形式を【 yy/m 】にする。 2.  J1セルに、数式【 =DATE(YEAR(I1),MONTH(I1)+1,1) 】を入力し、  セルの表示形式を【 yy/m 】として、右方にフィルする。 3.  I2セルに、数式   =IF(AND(I$1>=DATE(2000+$A2,$B2,1),I$1<=DATE(2000+$D2,$E2,1)),$H2/VLOOKUP($G2,{"月",1;"年",12;"四半期",3},2,0),"")  を入力して、右方、下方にフィルする。 Excel2003で動作確認済。以上ご参考まで。

nora-kanta
質問者

お礼

お礼が遅くなり申し訳ありません。 教えて頂いたとおりできました。 私のやりたかったことが完璧にできました。 ありがとうございました。 今後ともよろしくお願いします。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

難しくなくて簡単です。 スタート月はA2&B2を考える。正確にはA2&"/"&B2を考える。各行で08/4とかになる。D2&"/"&E2 エンド月は 例データ 第3行目から始まるとして A3 08、B3 5 D3 08 E3 9  とする。 H3の式は =IF(AND($A3&"/"&$B3<=H$1,$D3&"/"&$E3>=H$1),1000,"") 結果 H1:N3 08/4 08/5 08/6 08/7 08/8 08/9 08/10 -- 1000 1000 1000 1000 1000 -- 他の範囲は省略・ 年18000、四半期1500は1000の数字を変えるだけ。 式中の$の有無に注意。 何処かの列(例Z列)に Z1 1000 Z2 1500 Z3 18000 を入れて置けるなら、式は縦方向にも複写できるでしょう。 例 =IF(AND($A3&"/"&$B3<=H$1,$D3&"/"&$E3>=H$1),$Z1,"")

nora-kanta
質問者

お礼

お礼が遅くなり申し訳ありません。 考え方等いろいろな意味で勉強になりました。 今後ともよろしくお願いします。

関連するQ&A