• ベストアンサー

連続していない日付データからの抽出

エクセルで、   A   B 1 日付 売上   2 11/21  900 3 11/22 2000 4 11/26 1800 5 11/27 1300   D    E 1 日付  前日比 2 11/21 **% 3 11/22 **% 4 11/26 **% 5 11/27 **% とあります。 そこで、   G   H   I 1 日付 売上 前日比 2 任意 (抽出) (抽出) 3 と、Gに日付を入力したらH、Iにデータが抽出されるように関数を作りたいと思います。 Hには =INDEX(A2:B5,MATCH(G1,A2:A5,0),2) Iには =INDEX(D2:E5,MATCH(G1,D2:D5,0),2) と入力して抽出をしましたが、 例えばG列に元データには無い、「11/23」が入力されたときは、11/23よりも先で1番にくる11/26のデータを抽出するようにしたいのですが、どうしたらいいでしょうか? よろしくお願いします。

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

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

例データA1:B5 日付 売上 11月21日 900 11月22日 2000 11月26日 1800 11月27日 1300 G1に 2007/11/23 H1  に =INDEX(A2:B5,MATCH(G1,A2:A5,1),2) 質問ではMATCH関数の第3引数が0です(普通0で使う場合が多い)が1、-1も使えます。 日付順であると言う仮定で使えます。 WEB記事「エクセル Match関数」で照会や解説書を見ること。 http://excel.onushi.com/function/match.htm他多数。 I1に =INDEX(A2:B5,MATCH(G1,A2:A5,1)+1,2) 1行下ということで+1している J1に =I1-H1 結果 11月23日 2000 1800 -200 これでどうでしょうか。

yellow-
質問者

お礼

ありがとうございます。 参考URLまで、助かります。 教えていただいた式を少し応用し、思うものが出来ました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

次の方法は如何でしょうか。 H2は、=IF(VLOOKUP($G2,$A:$A,1)=$G2,VLOOKUP($G2,$A:$B,2),INDEX($B:$B,MATCH(VLOOKUP($G2,$A:$A,1),$A:$A,0)+1)) I2は、=IF(VLOOKUP($G2,$D:$D,1)=$G2,VLOOKUP($G2,$D:$E,2),INDEX($E:$E,MATCH(VLOOKUP($G2,$D:$D,1),$D:$D,0)+1))

yellow-
質問者

お礼

ありがとうございます。 教えていただいた式で思うものができました。 ただ、この式を理解するのに手惑いました…(自分の頭の悪さが身にしみます。) なので次点にしましたが、追いつくように勉強します。

すると、全ての回答が全文表示されます。