• ベストアンサー

エクセルの関数について

IF関数を使った条件参照について悩んでいます。そもそもIFではないかもしれません、お許しください。行いたいことは 1.E列が”実習日”ならば、D列の日付を返す(日付は別シートで手入力されたものから算出されています。) 2.E列が”休日”ならば、次の”実習日”のD列の日付を返す これを10回行いたいです。 現状 =IF(実習期間!E7="実習日",実習期間!D7,IF(実習期間!E7="休日","",実習期間!D7+1)) まで絞り出したのですが、行き詰まっています。どうかご教授ください。

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

  • ベストアンサー
  • mt2015
  • ベストアンサー率49% (258/524)
回答No.4

ANo.1です、 「実習期間」シートのセルG7に↓の式を入れて下にコピーします。 =IF(E7="実習日",D7,"") 次に結果を表示したいシートのセルB5に↓の式を入れ、B5:F6にコピー =SMALL(実習期間!$G:$G,ROW(A1)*5+COLUMN(A1)-5) これでどうでしょう。

blue-world7171
質問者

お礼

早速のご教授あり顔うございました!! うまくいきました!! 隣のセルB5であればC5にコピーしたときに関数中のA1がC1に変わり、参照がずれたのでB1に変更しましたところうまくいきました!正しい使い方かどうかわかりませんが、今の所うまく行っています!ありがとうございました(^o^)

その他の回答 (3)

  • mt2015
  • ベストアンサー率49% (258/524)
回答No.3

ANo.1です。 > 答えを返したいのは別シートになり、 > > c5=実習日の1日目 > d5=実習日の2日目 > と5日目まで続き、 > c6=実習日の6日目 > と10日目まで参照させます 最初の質問文からは想像出来ませんでしたが、出力イメージはこんな感じですか? 1日目~5日目が別シートのC5:G5 6日目~10日目が別シートのC6:G6

blue-world7171
質問者

補足

分かりづらく申し訳ありません。まさにそのとおりです!!

  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.2

コウユウことでしょうか F7=IFNA(IF(E7="実習日",D7,INDEX(D7:D18,MATCH("実習日",E7:$E$18,0),0)),"") 以下、必要数、下方向に複写

blue-world7171
質問者

お礼

ありがとうございます!縦方向へのコピーはうまくいきましたが、今回の横方向ではうまくいきませんでした。もっと勉強頑張ります!!ありがとうございました(^o^)

  • mt2015
  • ベストアンサー率49% (258/524)
回答No.1

どこにどう日付を返したいのかが解りませんが、最終的に「休日」では無い日を上から10個取り出せればよいのでしょうか? 添付の図を見てください。 G列を作業列として使用します(G列が嫌なら別な列に変更して下さい) セルG7に =IF(E7="休日","",D7) と、入れて下にコピーします。 これで休日では無い日の一覧が出来ましたので、セルI7に =SMALL(G:G,ROW(A1)) と、入れてI16までコピーして下さい。

blue-world7171
質問者

補足

早速のご回答ありがとうございます。 答えを返したいのは別シートになり、 c5=実習日の1日目 d5=実習日の2日目 と5日目まで続き、 c6=実習日の6日目 と10日目まで参照させます。

関連するQ&A