• 締切済み

エクセル(EXCEL) 2つの値が一致する行の参照

エクセルで、以下のように「Sheet1」のA列に日付、B列には時刻が 入力されており、C列にはその時刻の為替レート(ドル)が入力され ています。 【Sheet1】      A     B     C 1 2009/3/1   7:00   99.56 2 2009/3/1   8:00   99.12 3 2009/3/1   9:00   96.12 以下続く この行が延々と数年間分入力されているとします。 そこで、例えば、「Sheet2」に毎日の7:00の為替レートのみを抜きだ して縦に並べたい(以下のように)とします。 【Sheet2】        A     B     C 1 2009/3/1   7:00   99.56 2 2009/3/2   7:00   98.39 3 2009/3/3   7:00   100.10 (要するに、毎日7:00の為替レートのみ時系列で見たい) この場合、「Sheet2」のC列にはどのような数式を入力すれば良いの でしょうか? 【Sheet1】から、「09年3月1日」且つ「7:00」の行のC列、 を拾ってきて、【Sheet2】のC列に返すということなのですが、 参照するところが2つ(日付と時刻)ある、場合の式の組み方がわかりません。 (もしひとつなら、VLOOKUP とか、INDEX + MATCH 関数で組めるのですが・・) 恐れ入りますが、おわかりになる方なにとぞご教示くださいませm(_ _)m。

みんなの回答

  • sige1701
  • ベストアンサー率28% (74/260)
回答No.4

>そこで、例えば、「Sheet2」に毎日の7:00の為替レートのみを抜きだ >して縦に並べたい(以下のように)とします。 たとえばについて回答します Sheet1のD列に =IF(B1="7:00"*1,A1,"") といれ下にコピー Sheet2 C1=INDEX(Sheet1!C:C,MATCH(A1,Sheet1!D:D,0)) 因みに、やりたいことは C1=INDEX(Sheet1!C:C,MATCH(A1+B1,INDEX(Sheet1!$A$1:$A$20+Sheet1!$B$1:$B$20,),0)) こんな事かな

cocoopit
質問者

お礼

うおー!一番下に書いていただいたので、できますね。すばらしい! ありがとうございます。 このようなことを簡単にお答えになるとは! (というか、私のレベルが低いのか・・・) でも、実際に使うのはその上に書いていただいたD列に 日付をいったん書き出すほうがシンプルで良いかもしれません。 本当にありがとうございました。 問題が解決したうえ、とっても勉強になりました。深謝でございます!

回答No.3

わたしも、【Sheet1】に 補助列を 作ってよければ簡単かと 【Sheet1】に1列挿入して 「=A1+B1」でオートフィル 【Sheet2】のC列には INDEX + MATCH 関数で =INDEX(Sheet1!C列,MATCH(A1+B1,Sheet1!挿入した列,0),1)

cocoopit
質問者

お礼

ありがとうございます。 意外と簡単にできてしまいますね。 まだまだ、自分の関数の使いこなしレベルが低いのを痛感させられました。 勉強になりました。深謝でございます!

  • turuzou
  • ベストアンサー率33% (15/45)
回答No.2

とりあえず2つ考えてみました。 Sheet2のC1へ =SUMPRODUCT((Sheet1!A$1:A$10=A3)*(Sheet1!B$1:B$10=B3)*Sheet1!C$1:C$10) を、オートフィルで必要分下へ、で表示できますが、重くなりそうです。 Sheet1で補助列を使用できるのならば、下記のような感じでも? Sheet1のA列に1列挿入して A1へ =TEXT(B1,"yyyy/m/d")&"_"&TEXT(C1,"h:mm") を、オートフィルで必要分下へ。 Sheet2のC1へ =IF(COUNTIF(Sheet1!A:A,TEXT(A1,"yyyy/m/d")&"_"&TEXT(B1,"h:mm")),VLOOKUP(TEXT(A1,"yyyy/m/d")&"_"&TEXT(B1,"h:mm"),Sheet1!A:D,4,0),"") を、オートフィルで必要分下へ。

cocoopit
質問者

補足

質問主です。 ご回答ありがとうございます。 ちょっと時間を使わないと理解できなさそうなので、 明日以降、改めて書き込みいたします。 取り急ぎご回答のお礼申し上げます。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんばんは! 関数でないとダメですか? 一番簡単な方法はオートフィルタだと思いますが・・・ 質問内容を拝見する限りにおいては、この方法では解決できないような もっと深い理由があるような気もします。 毎日更新するたびにSheet2の方に7:00のデータのみが 反映されるようにしたいということなのでしょうかね? VBAなら出来るような感じもしますけど。 どうもこの程度の回答でごめんなさい。m(__)m

cocoopit
質問者

お礼

ご回答ありがとうございます。 お礼が遅くなって申し訳ありませんでした。 お察しの通り、毎日更新する度にSheet2に7:00のデータが 入っていく形にしたいのです。 いずれにしましても、ありがとうございました。 また機会ございましたら、どーぞよろしくお願い致します。。