• ベストアンサー

検索値が複数条件ある場合のエクセル関数

A列に抽選会の回数(1回~30回)、B列に当選番号(1番OR2番)、C列に商品番号(1番~10番)が入力されているデータが3000レコード 程入力されているデータがあります。 例えば、A列の抽選会の回数が5回&B列の当選番号が2番だった時のC列の商品番号を求めたいのですが、どんな式にすれば良いのでしょうか?入力されているデータの加工はできないので、セルを連結してVLOOKUP関数で検索値を求める事はできません。 どなたか、宜しくお願い致します。

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

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

>A列の抽選会の回数が5回&B列の当選番号が2番だった時のC列の商品番号 同じA列、B列の値に対してC列の値が複数ありますか? あるかないかで回答が変わります。 ないなら =IF(SUMPRODUCT((A1:A500=5)*(B1:B500=2))=1,INDEX(C1:C500,SUMPRODUCT((A1:A500=5)*(B1:B500=2)*ROW(A1:A500))),"該当なしまたは重複あり") 重複があるときで最小行の商品を検索するなら =IF(SUMPRODUCT((A1:A500=5)*(B1:B500=2))=0,"該当なし",INDEX(C1:C500,LARGE(INDEX(((A1:A500=5)*(B1:B500=2)*ROW(A1:A500)),),SUMPRODUCT((A1:A500=5)*(B1:B500=2))))) 重複があるときで最大行の商品を検索するなら =INDEX(C1:C500,MAX(INDEX(((A1:A500=5)*(B1:B500=2)*row(A1:A500),))) すみませんが式中の500は3000に読み替えてください

kontade
質問者

お礼

わざわざ複数ない&あるパターン両方教えていただき有難うございました。 おかげさまで欲しい値が求められるようになりました。

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

その他の回答 (1)

  • 0kool0
  • ベストアンサー率50% (1/2)
回答No.1

こんばんわ いくつか方法はありますが、例えばコレはいかがでしょうか。 =INDEX(C2:C3001,MATCH(5,IF(B2:B3001="2番",A2:A3001),0)) 見ての通りですが、 B2からB3001の範囲で 2番、且つA2からA3001の範囲で5の行のC列の値を返す という式です。 A列とB列を逆にしても大丈夫です。 =INDEX(C2:C3001,MATCH("2番",IF(A2:A3001=5,B2:B3001),0)) ご指定の検索条件である "2番" と 5 はセルを指定しても大丈夫です。 配列数式ですので、確定するときは Ctrl+Shift+Enter を押します。 応用としてこれでも大丈夫です。 =INDEX(C2:C3001,MATCH(5&"2番",A2:A3001&B2:B3001,0)) これのほうがわかりやすいですかね。 今回ご指定のデータはC列までで検索条件が2つですが、3つ以上になるならこれがいいかもしれません。match のあとに条件を増やせばいいだけですから。 ちなみにどの式も3001行にしてありますが、これは1行目は項目名でデータが3000と仮定しているからです。

参考URL:
http://support.microsoft.com/kb/214142/ja
kontade
質問者

お礼

回答有難うございます。ただ、私の理解不足なのか、欲しい値が出てきませんでした(?) 今回は、他の方のアドバイスを参考にさせていただきました。ご丁寧に有難うございました。

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

関連するQ&A

  • エクセル関数の複数条件の値の求め方について

    A列に抽選会の回数(1回~30回)、B列に当選番号(1番OR2番)が3000レコード程入力されているデータがあります。 例えば、抽選会回数が2回で、当選番号が2番のレコード数を求めたいのですが、どのようにすれば良いでしょうか? 過去質問を参考にして、下記の式でとりあえず値は求められたのですが、この式では"1"以外という指定になってしまい、本来指定したい"2"のレコード数が求められません。(3番が出た時に困ります) =SUM((A1:A3000=2)*ISERROR(FIND("1",B1:B3000))) また、範囲指定を『A1:A3000』の様に範囲限定ではなくて、A列もB列も全てにしたいのですが、それは出来ないのでしょうか?『A:A』『B:B』と範囲指定したらエラー値 #NUM! になってしまいました。(レコードが随時増えていくので、その都度範囲指定をやり直したくありません) 宜しくお願いします。

  • エクセルの関数について

    A列に抽選会の回数(1~100)、B列に当選番号(1~10)、C列に賞品番号(アルファベット1桁+数字3桁)が3000件 位あるデータがあります。 例えば、検索値として、A列の抽選会回数=5 & B列の当選番号=3 & C列の賞品番号="1桁目がDのデータ全て" の データ数を求めたいのですが、どのような式を使えば良いでしょうか? 先日この質問ページで、『SUMPRODUCT』を教えていただいたので、下記の様に指定してみましたが、当然(?)駄目でした。 SUMPRODUCT((A1:A3000=5)*(B1:B3000=3)*(C1:C3000="D***")) ちなみに、オートフィルターは使用したくありません。 宜しくお願いします。

  • IF関数(複数条件)

    E1:検索したい商品番号 E2:検索したい商品棚コード A列:商品番号 B列:商品棚コード C列:価格 とある場合、A列の商品番号もB列の商品棚コードもE1、2のものと一致する場合に限り、C列の価格をD列に表示するようにしたいです。 どう入力すれはいいでしょうか。

  • VLOOKUP関数について

    以前も、同じ質問をしましたが、問題が解決できません。よって再度質問をしますので宜しくお願い致します。 まず、VLOOKUPで読み込みたいデータを作成しています。名前は商品一覧です。読み込む範囲はA3からF50です。別のシートのA列1.2.3.・・・に商品番号を入力すると、B列に商品名、C列に商品価格が、商品一覧から自動的に読み込み入力してくれます。 ちなみに、B1セルには以下のような記述をしています。 =VLOOKUP(A1,商品一覧!$A$3:$F$50,2,FALSE) A列の商品番号については、手入力をするのでは無く、A列をクリックすると、セルの右下に三角っぽいマークが出てきてそのマークをクリックすると、商品一覧に入力されている内容が縦に出てきて、該当の商品番号を選択するような仕組みになっています。 そして該当の商品番号を選択すると、B列に商品名、C列に、商品価格が入力されるような仕組みになっています。 商品一覧には現在、45項目入力されています。商品一覧に追加したく46番目に商品番号、商品名、商品価格を入力しましたが、46番目47.48.・・・に入力した項目が表示されません。 特別、商品一覧のデータに、何らかの書式設定もしてないと思います。すいません。よく分かりません。 はっきりと覚えてはいませんが、当時エクセルのツールバーから何らかの操作をして商品一覧の読み込む範囲を変更した操作をしたような記憶がありますが、当時の操作方法を忘れてしまいました。 確か、A3からF50になっているものをF45等としてしまったかも知れません。 全くの初心者で原因が全く分かりません。どなた様かご教示の程宜しくお願い致します。 前回とほぼ、同じ質問になっておりますが、どなた様かご教示の程宜しくお願い致します。

  • エクセル関数で、ご教示下さい

    例として、セルA1~A10に、1.2.3.・・・・10と番号を入れて       セルB1~B10には、商品の在庫数が入力されているとします。 この時、セルC1に集計の開始番号 セルC2に集計の終了番号を入力すれば、      D1に開始番号から終了番号までのB列の合計を表示させたいのですが、      このような集計ができるD1に入れる関数はあるでしょうか。 例えば、B列の3行目から6行目までの合計をD1に表示させたい場合に      C1にA列番号の3を入力、C2には6を入力すれば、D1にB3からB6の合計を      表示してくれる、といった関数です。      開始番号、終了番号は、何番~何番までと、その都度変わります。 どなたか、よろしく、お願いいたします。         

  • エクセルのVLOOKUP関数の検索値が数式の場合について

    エクセルのVLOOKUP関数に悩んでいます。 どなたかご指導お願いいたします。 *--------------------------* A~F列 すべて書式が時刻です。 A、B列には数式で計算された時刻が入力されており、 C列はA列+B列という計算式がはいっています。 F列に=VLOOKUP(C列、D:E列、2、FALSE)というように C列を検索値とし、D列を参照し、E列にある時刻をF列に 設定したいのですが、結果が#N/Aになります。 例えばA,B列が数式ではなく入力した値であれば 検索値であるC列がA列+B列 でも結果はOKでした。 検索値は数式セル同士を足し算した数式は設定不可能なのでしょうか?

  • Excelの関数での複数検索方法について

    VLOOKUPでは複数検索できなく困っております。 台帳から複数条件のみを摘出して条件に合致したものを「◯」を表示させたい。 台帳に入力されている文字 B列:メール、TEL、FAX E列:クローズ、対応中 H列:Aさん、Bさん、Cさん、Dさん、お客様対応 検索条件 各行に入力されている【メール、クローズ、「Aさん、Bさん、Cさん」】のみを摘出してK列に「◯」を表示させる。 よろしくお願いします。

  • Excelでのデータ検索関数について

    Excelでのデータ検索について悩んでいます。 例えば、A列では「あ~お」、B列では「A~H」でC列ではデータが入っている場合でA列の「い」、B列の「C」のデータを検索したいときはどのように関数を組み合わせれば良いでしょうか?色々試したのですがなかなかうまくいきません。vlookup、index関数で組み合わせてできるのでしょうか?やはりVBAでしか無理なのでしょうか? どなたかご存知の方、ご教示ください。

  • 複数条件を満たすVLOOKUP関数

    Excel独習者です。 次の3つのシートがあります。 「入力窓口」「M1組」「M2組」「M3組」 シート「M1組」「M2組」「M3組」には各クラスの生徒の出席番号(B列)と氏名(C列)が名票としてあります。 シート「入力窓口」のcells(C,6)にクラス名を入力します。 シート「入力窓口」のcells(H,7)に出席番号を入力するとcells(I,7)に該当クラスの該当番号の氏名が 表示されるようにcells(I,7)に次の式を入力しましたがエラー表示でうまくいきません。 =IF(H7="","",IF(C6="M11",VLOOKUP(H7,'M11'!$B$4:$C$11,2,IF(C6="M12",VLOOKUP(H7,'M12'!$B$4:$C$11,2, IF(C6="M13",VLOOKUP(H7,'M13'!$B$4:$C$11,2,))))))) どのような式を入力すべきかご助言いただけたら幸いです。 なお、OSはVISTA、Excelは2007です。 よろしくお願いいたします。

  • エクセル関数について教えてください

    sheet1にはA列にコード番号が入力されており、B列にグループごとの通し番号、C列にグループ名が表示されています。 そこからsheet2にC列グループ名とB列通し番号から検索し、A列コード番号が抽出されるようにしたいのですが、やり方が解りません。 どなたかご教授お願いします。 Sheet1                   Sheet2    A   B     C                  A      B 1  1898  1  東京           1  グループ名 グループ名 2  1854  2  東京           2  3  1876  3  東京           3   A1の通番1  B1の通番1 4 22354  1  青森           4   A1の通番2  B1の通番2 5 22398  2  青森           5  A1の通番3  B1の通番3 6 22376  3  青森           6  A1の通番4  B1の通番4 7  3898  4  東京           7  A1の通番5  B1の通番5 8 16622  2  群馬            8  A1の通番6  B1の通番6 9 12242  1  大阪           9  A1の通番7  B1の通番7 実際にはもっと複雑なのですが、これだけ解れば応用で何とか変更は出来ると思うので、お願いします。 ただ、出来れば作業用のセルは使用しない方向でお願いします。 他のデータに影響が出てきますので・・・

専門家に質問してみよう