質問: エクセルの関数についてです、よろしくお願いします エクセルの関数についてです、よろしくお願いします。 sheet1に以下の様なデータが何百行とあります。 a b c d e 日付 顧客名 品名 数量 金額 上記のsheet1のデータを基にsheet2へ抽出して転記する ものを作りたいと考えています。 具体的に言いますと sheet2のa1に2014/11/21、 b1に2014/12/20、 c1に ○○商店と入力するとその下に a b c d 日付 品名 数量 金額 2014/11/23 りんご 5 750 2014/11/28 みかん 2 300 2014/12/2 いちご 3 600 2014/12/10 りんご 5 750 sheet1のリストから該当するものを引っ張ってきて sheet2へ表示させるものです オートフィルタ等でなく、関数で出来ないでしょうか お詳しい先生方よろしくお願いします。
回答: こんばんは! >お詳しい先生方 ではなく、そこらへんに転がっているおっさんですが・・・ おそらく、sheet2のa1セル日付~b1セル日付内のc1セル(顧客名)のデータを表示したい! というコトだと思いますので、 判りやすいのは↓の画像のように作業用の列を設ける方法だと思います。 画像ではsheet1のg2セルに =if(countblank(sheet2!a$1:c$1),"",if(and(a2>=sheet2!a$1,a2<=sheet2!b$1,b2=sheet2!c$1),row(),"")) という数式を入れフィルハンドルでずぃ~~~!っと下へコピーしておきます。 そしてsheet2のa4セルに =iferror(index(sheet1!$a:$e,small(sheet1!$g:$g,row(a1)),match(a$3,sheet1!$a$1:$e$1,0)),"") という数式を入れd4セルまでフィルハンドルでコピー! その後a4セルの表示形式は好みの日付にします。 最後にa4~d4セルを範囲指定 → d4セルのフィルハンドルで下へコピー! これで画像のような感じになります。 ※ 配列数式で作業列なしで可能ですが、データ量が極端に多い場合はおススメしません。 まずはこの程度で・・・m(_ _)m