• ベストアンサー

EXCELで検索範囲を再設定して値を取得するには?

お世話になります。 下記のようなデータがあるエクセルファイルで、 店Bの商品2の2月単価を取ってくるには、どのような関数を組み合わせればいいのでしょうか? 店番号,店名,商品番号,商品名,1月単価,2月単価,3月単価 10,店A,5000,商品1,100,110,111 10,店A,6000,商品2,200,220,222 20,店B,5000,商品1,100,110,111 20,店B,6000,商品2,200,220,222 30,店C,5000,商品1,100,110,111 30,店C,6000,商品2,200,220,222

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

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

#01です >店Bの開始行位置を見つけて、次に終了行位置を見つけて、商品2を検索したいのですが はい大丈夫です。ダミー行も必要ありませんよ。 例えばH1に店番号、H2に商品コードを入力してH3に =SUMPRODUCT((A2:A100=H1)*(C2:C100=H2)*F2:F100) と入力すればH1,H2を変えると、それに対応する単価を表示します。 (ただし店名と商品名の組み合わせが複数存在する場合はNG)

betti2osaka
質問者

お礼

理解しました。 うまく行きました。こんな方法があるなんて! びっくり。 ありがとうございました。

その他の回答 (1)

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

「2月」を決め打ちで良いなら =SUMPRODUCT((A2:A7=10)*(C2:C7=6000)*F2:F7) =SUMPRODUCT((B2:B7="店A")*(D2:D7="商品2")*F2:F7) で求められます。 でも店名と商品名の組み合わせが複数存在する場合は正しい結果が得られません。その場合はもっと複雑な式になりますので、必要であれば補足してください

betti2osaka
質問者

お礼

店Bの対象行数を固定にするよう、データにダミーデータを入れることにしました。これだとなんとか関数でできるでしょうか?

betti2osaka
質問者

補足

レスありがとうございます。 補足します。 店Bの開始行位置および終了行位置は毎回固定ではありません。 また、店Bの対象行数が複数行ありますが、毎回固定位置(上から2番目とか)に出現する保証もありません。 つまり店Bの開始行位置を見つけて、次に終了行位置を見つけて、商品2を検索したいのですが、関数だけでできるでしょうか?

関連するQ&A

  • エクセル データベースからの検索について

    エクセル データベースからの検索について 商品名・商品番号・在庫といったデータベースがあります。 検索する別の場所を設けそこで商品番号をたたくと商品名と在庫が表示できるようにVLOOKUPでしました。 商品番号がわからない場合があるので商品名から検索できるようにしたいのですが 商品番号からの検索と同じ関数では「#N/A」となってしまいました。 文字での検索の場合はどのような関数になるのでしょうか?         B2商品番号入力   C2検索結果表示(商品名) D2検索結果表示(在庫数)         B3商品名入力    C3検索結果表示(商品番号)D3検索結果表示(在庫数)  A10商品番号  B10商品名     C10在庫数   :       :         : としてC2には =VLOOKUP(B2,A10:C100,2,FALSE) とし正しい結果が表示されます。 商品名から検索したいC3にも同様のものをいれましたが表示されません。 よろしくお願いします。     

  • エクセルの値を範囲指定で取得してくるには?

    VB.netについての初歩的な質問かもしれませんがよろしくお願いします。 ●下記の様に値が入力されたエクセル(Book1.xls)があります。    A   B   C   D   E 1  100 200 300 400 500 2 600 700 800 900 999 ●VB.net側では下記のように宣言してあります。 Dim xlApp As Excel.Application Dim xlbook As Excel.Workbook Dim xlsheet As Excel.Worksheet ここで、Book1.xlsの"A1"から"E2"までのセルに入力されている値の中で最大のセルと最小のセルの色を変えるプログラムを作りたいと考えています。 【質問】 (1)この場合、『MAX関数』『MIN関数』の様なものは使用できないのでしょうか?使用できる場合は、セルの範囲指定で計算を行うことができないでしょうか?  ※ちなみに、セルを一つずつforループで検査する方法であればできています。 (2)またそのセル名(A5、C6等)を取得することはできないでしょうか? ご教授下さい。

  • エクセルで検索範囲より特定文字に対応するセルの値を求めたい。

    教えてください。 A1~D4に,下記のようにDATAがある場合、 セルA7に ”A1”と入力すると セルB7に ”部品A”と表示させたい。 セルA8に ”D3”と入力すると セルB8に ”部品C”と表示させたい。 どのような関数で求められるでしょうか。      A    B    C     D 1 使用部品 番号1  番号2  番号3 2 部品A    A1   B1 3 部品B    A2   A3    B5 4 部品C    D1   D3    A4 5 部品D    C2   C3 6 7 A1    部品A 8 D3    部品C 9 C3    部品D 10A4    部品C  

  • エクセル 集計 日付 部分一致検索

    下記のようなエクセルがあるとき、シートD1セルに”2007/8”と記入し月毎の商品Aをのデータ数を集計したい場合、VBA以外に関数などで処理できますか? IF(C:C = "商品A",COUNTIF(B:B,D1&"*"),0) 上記のようにしても値が反映されません。 どなたかご教授お願いします。 A B    C 1 2007/8/1 商品A 2 2007/8/1 商品B 3 2007/8/2 商品C 4 2007/8/3 商品A 5 2007/8/4 商品A 6 2007/9/1 商品B 7 2007/9/4 商品C

  • EXCEL 月末の値の取得

    家計簿をEXCELにて作成しているのですが、1年の月末時点での残金が知りたく、色々な関数を試しましたがどうもうまく抽出できません。 下の様に1つの口座の入出金を記録しているのですが、ここから、 ◆1月 \1,077,256 ◆2月 \856,059  ・   ・  ・   ・ と12月までの各月末のデータを抽出しようとした場合、どの様にすればよろしいのでしょうか? どなたかご存じの方、教えて下さい。   A      B      C 2009/1/5   項目名  \897,389 2009/1/10  項目名  \887,389 2009/1/23  項目名  \1,145,746 2009/1/26  項目名  \1,077,256 2009/2/2   項目名  \957,652 2009/2/12   項目名  \887,389 2009/2/25   項目名  \833,652 2009/2/27   項目名  \856,059 2009/3/12   項目名  \651,079   ・      ・     ・   ・      ・     ・   ・      ・     ・

  • Excel MATCH関数で検索範囲内に同じ値の検索値が複数ある場合

    MATCH関数で、検索した値が複数ある場合に1つしか出なくて困っています。 (例)    A B C D 1 年月日 種類 番号 備考 2 4月1日 肉類 1 3 4月2日 野菜 2 4 4月3日 肉類 1 5 4月4日 果物 2 6 4月5日 野菜 1 7 4月6日 果物 3 8 4月7日 果物 2 9 4月8日 肉類 1 この表で、D9の備考の欄に「種類:肉類、番号:1」と同じものがあった時の日付を、新しい日付で取り出したいのです。 INDEX(A2:A8,(MATCH(B9,B2:B8,0)+MATCH(C9,C2:C8,0))/2) としたのですが、本当は4月3日を取り出したいのですが、4月1日が出てきます。 どのようにしたら良いでしょうか? Excel2003です。 よろしくお願いします。

  • エクセルのVLOOKUPに関して

    お世話になっております。 VLOOKUP関数になるのか他の関数になるのか分からないのですが ご教授よろしくお願い致します。 A1セル      A2セル      A3セル 店番号      商品名       担当 1         ア          山口 2         イ          大山 3         ウ          斎藤 1         エ          中村 1         オ          山口 上記のような情報がシート1にあり、 シート2のA1セルに店番号を入力した時に シート2のB列に同じ店番号を持つ商品名をB1、B2、B3...セルへとリスト化し、 C列に担当をC1、C2、C3...セルへとリスト化したいのですが、 どのような関数を使用すれば可能となりますでしょうか。 よろしくお願い致します。

  • エクセルで異なるシートから共通のものを取り出す

    いつも参考にさせていただいています。 エクセルであるブックに2つのシートがあります。 シート1・2とも項目は共通で下記の通りです。 A B C (商品番号)(商品名)(単価) シート1には5000品目、シート2には3000品目入っていると仮定します。 行ないたいのは新規にシート3を作り、シート1の商品番号をキーとしてシート2を見に行き、シート2にあればシート1の商品番号・商品名・単価をシート3に書き出していきたいのです。 アドバイスの程、宜しくお願い致します。

  • エクセルで一覧から値を検索して抽出

    エクセルで一覧から値を検索して抽出 エクセル初心者です まる一日がんばりましたがギブアップです。 (今日の成果ゼロで上司の目が痛いです。。) 下のようなシートが2つあり、 シート2[A2からA51]の売上ランキングから シート1[B2からCX9000]を検索して →商品名をシート2のB2からB51に表示させたいと思っています ※本来ならばVBAですべき計算かもしれませんが関数で教えていただけるとうれしいです 何卒よろしくお願いいたします (シート1) A列 B列   C列   D列 時間 商品あ 商品い 商品う・・ 0時 1098 7232 1211 1時 3460 5656 4342 2時 9843 9843 9322 3時 9843 9977 2323 4時 1111 3232 2323 5時 4783 8045 3874 ・・ ※商品名は約1,000個 ※時間は日付含め約8,000行 (シート2) A列     B列 ランキング  商品名 9977  (  ) 9843  (  ) 9322  (  ) 8425  (  ) 8045  (  ) ・・ ※ランキングは50位まで

  • ■エクセルで請求書作成

    みなさんお世話になります。 お知恵をお貸しいただければ幸いです。 エクセルにて売り上げの一覧がございます。 例) A1------B1-----C1----D1-----E1----- Aさん 商品A 数量 単価 支払い方法 Bさん 商品A 数量 単価 支払い方法 Cさん 商品A 数量 単価 支払い方法 Aさん 商品B 数量 単価 支払い方法 Cさん 商品B 数量 単価 支払い方法 という横へデータを入力した一覧です。 Aさん、Cさんが違う商品を2回に分けて購入。 よって、2行に入力してあるのですが・・・ これを月末でしめた時に、Aさんに対しての請求書で 請求書  Aさん 1月請求合計額 ●●円   明細   商品A 数量 単価 支払い方法   商品B 数量 単価 支払い方法 と請求書を作る方法はございませんでしょうか? 同時に、Aさんの入力場所にBさんの名前を入れるとBさんの請求書が完成し・・・ 可能ならAさん・・・Bさん・・Cさん・・Dさんと次々に請求書を自動で印刷する事もできる方法もございますでしょうか? VLOOKUP関数でも調べてやってみましたが、同じ商品が重複して2度出てきたり、Aさんでうまくできても、Bさんでおかしくなったりで、本日1日中費やしてしまいました。 =IF(A1="","",(A1,売上データ!$A$1:$E$5,2,FALSE)) として、請求書のエクセルページにA1へAさんの名前を入れると売上データの商品Aが表示されますが、Aさんは2品目購入なので、下段以降にセルをコピーすると同じデータが反映されてしまい・・ どうかお知恵をお借りできれば幸いです。