• 締切済み

EXCELで別ファイルからデータを抽出するには?

EXCELについて条件に一致する列の内容を抽出する方法を教えてください。 シート1の行に日付があり、列に品名と日ごとの数を入力してあるシートがあります。 このシートの内容を別のシートに日付を入力すると、その日の内容が表示されるようにしたいのですが、うまくいきません。 [シート1]     1    2    3   4 (←日付) A品  10  20  30   40… B品  30   10  40  20… C品  15  16   17  18… D品  20  21   22  23… [シート2]     *(←日付を入力) A品 (   ) B品 (   ) C品 (   ) D品 (  ) シート1とシート2はそれぞれ別ファイルで同時に開いている状況です。 シート2の*部分に日付を入れると該当する日付の各品名の数量が( )の部分に表示されるようにするにはどうしたらよいですか?

みんなの回答

  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.3

同じファイルの、別のシート・・でよろしいでしょうか。 > シート2の*部分に日付を入れると 「*」の入力方式がわからないので、2通り・・と言っても式はほぼ一緒ですが。 図が見づらいでしょうが、なんとか解読してください(笑)。 とりあえず・・シート1の表部分、日付を除いた範囲に「売上表」と名前を付けました。 日付行を入れても問題はないのですが、なんとなく除いてみました。 実際の表では「品番がソートされていない」なんてこともあったらいやなので、 あえてC・D品を入れ替えてみてます。 シート2には2通りの計算を入れてみています。 図の中の不自然に枠で囲ってある部分がそれです。 B1セルに日付「*」に該当するモノを入れます。 どちらもVLOOKUP関数を使用しています。 VLOOKUP関数に関しては適宜調査いただきたいのですが、 要するに、 指定範囲から「範囲の1列目(今回は品番)と合致した行」の 「◎番目の列の内容」を吸い出しなさい、と言う関数です。 4つ目の引数、FALSEを指定することで、順不同で完全一致する行を見に行きます。 (ちなみに、FALSEを省略またはTRUEと指定すると、近似値を見に行きます。  この場合はキー項目が昇順で並んでいることが条件です。) 今回の場合、「品番が合致した行」の「◎列目」、 「1日(ついたち)が2列目に」きてますから、「●日+1列目」を持ってこい、 と言う考え方です。 「日付(○月●日、○/●など)」を打つ場合は、 DAY関数を使って「●日」だけを吸い出しています。 つまり、式は(図中では間違えていますが)   =VLOOKUP(A2,売上表,DAY($B$1)+1,FALSE)  (B2セル) とします。 数字だけを日付とみなして打つのであれば、DAY関数は不要で、   =VLOOKUP(A2,売上表,$D$1+1,FALSE)  (B2セル) とします。 あくまで一例とお考えくださいませ。

soyprotein
質問者

お礼

ありがとうございました!!

  • TammyG3
  • ベストアンサー率30% (34/111)
回答No.2

同一ブックのシート1、シート2とします。 (同時に開いているのを、別ファイルと言っているようです。  また、シート1を開いている必要はありません! それを、参照するのですから) シート1の範囲に、「売上」と名前を付けます。 シート2のB1に、「日付」と名前を付けます。 (日付は、単なる数字とします) シート2のB2に、「 = VLOOKUP( A2, 売上, 日付+1 ) 」と入力し、オートフィル。 B1に日付を入力して確定すると、その日の売上が表示されます。                               鎌倉 曽野蜩

soyprotein
質問者

お礼

ありがとうございました!!

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.1

元データがBook1のSheet1にあり(1行目が日付)、別ブックのB1セルに日付が入力されているなら以下の式を入力して下方向に品名分オートフィルしてください。 =INDEX([Book1]Sheet1!$A$2:$G$10,ROW(1:1),MATCH($B$1,[Book1]Sheet1!$1:$1,0))

soyprotein
質問者

お礼

ありがとうございました!!

関連するQ&A