• ベストアンサー

EXCELの関数

EXCELで、Aの列に○、Bの列に×がある行のCの列の数字を返す関数の使い方があれば、教えて下さい。 AとCの二つの列だけだと、VLOOKUPという関数を使えばAが○の時のCの数字を返す事ができるという事までは分かりましたが、Aの列に○がある行が2つ以上ある場合(Aの列が○で、Bの列が△である行を無視したい場合)、そのまま使うことができなくて困っています。 かなり初心者なので、申し訳ありませんが、よろしくお願いします。 例 ○   △   5 ×   □   3 ○   □   4 ○   ×   1 上のような行が無数に並んでいる場合で、左の列と真ん中の列の組み合わせが1つしかない時、左の列と真ん中の列の文字を指定した時の右の列の数字を返したい。

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

  • ベストアンサー
  • a987654
  • ベストアンサー率26% (112/415)
回答No.6

NO5です。 済みません回答をミスしました。正解は =IF(VLOOKUP(A1,A3:C7,2)=B1,VLOOKUP(B1,B3:C7,2),"") です。

その他の回答 (5)

  • a987654
  • ベストアンサー率26% (112/415)
回答No.5

VLOOCKUPを2重に使えば簡単ですよ。 1列目、2列目の検索条件を夫々A1、B1に入れるとしてデータをA3~C7にいれたとすれば下記にてOK =VLOOKUP(VLOOKUP(A1,A3:C7,2),B3:C7,2)

  • macchan1
  • ベストアンサー率38% (52/136)
回答No.4

C列が数字の場合は、SUMPRODUCT関数の返す値だけで求められますが、文字列の場合は以下のような式にします。 =OFFSET($C$1,SUMPRODUCT(($A$1:$A$100="○")*($B$1:$B$100="×")*ROW(A$1:A$100))-1,0,1,1)

  • tresbien
  • ベストアンサー率51% (51/99)
回答No.3

=SUMPRODUCT((A1:A10000="○")*(B1:B10000="×")*(C1:C10000)) (A1:A10000="○")は論理式で、一致したら1を返し、そうでない場合は0になります。 だから、4行目でのみ 1*1*1 が計算されほかは0になるので、合計が1となって現れます。 よって、満たす組み合わせが複数ある場合は合計が出ます。

  • char0078
  • ベストアンサー率27% (32/118)
回答No.2

DGET関数で出来ると思います。 記号1 記号2 数字 ○   △   5 ×   □   3 ○   □   4 ○   ×   1 記号1 記号2 ○   △ 上記の表で、仮に 記号1~1までの5行をDatabase、 記号1~△の2行をCriteriaと名前をつけておきます。 =DGET(Database,"数字",Criteria) この式だと、抽出条件が増えてもその分のCriteriaを 増やしていけば抽出が可能です。

  • shkwta
  • ベストアンサー率52% (966/1825)
回答No.1

○   △   ○△   5 ×   □   ×□   3 ○   □   ○□   4 ○   ×   ○×   1 上のように、C列に1列挿入して、=A1&B1 (など)と文字列を結合する式を入れます。 そして、VLOOKUPでC列の○×を探します。 A列に○×、B列に空白があるなど単純な結合で困る場合は =A1&"#"&B1 など工夫します。

関連するQ&A