• ベストアンサー

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

  • エクセルの関数でセルの合計を求めたい(条件付) 

    関数で   A B C  1 ○ 1 2 × × 3 ○ 3 4 × × 5 × × 6 ○ 2    ※ ×は空白です。 A行がが○だった時、B列の数字と一つ下の○の行のB列の数字の合計をC行に求めたいと思っています。 例えばC1には4、C3には5と言った感じです。 IF関数をネストしようと思ったのですが、×が10個以上続く場合がありネストできませんでした。 お知恵を拝借させてください。 よろしくお願いします。 関数では難しい場合はVBAでも結構です。

  • エクセルの関数についての質問です。

    エクセル関数について質問です。 初心者ですが、宜しくお願い致します。 例えば、A列に名前、B列に数字、C列にコストを並べて、30行の種類が有る場合。 :C列のコスト10000以内で、B列の数字が一番大きくなる、10行の組み合わせの式を作りたい時には、どうすれば良いですか? 30行の中で、コストが10000以内で、Bの値が一番大きくなる組み合わせの10行が知りたいです。 説明下手で申し訳ございませんが、どなたかご回答宜しくお願い致します。

  • エクセルの関数

    エクセルの関数についてですが。 1行目には見出しがあります 2行目から100行目までデータが入っています A列は店名B列は氏名  C列には、目標の数字  D列には成績 E列に関数を入れたいのです。D列の数字が5000を超えると☆、さらにC列よりD列が大きかったら ○ (目標を達成したら○が入るということです) さらに、C列よりD列が小さい場合は、D列の数字をそのまま入る)。。。目標を達成した場合は ○ 達成していない場合は そのままの数字を入れるということです どんな関数をいれたらいいか教えてください

  • エクセルの関数についての質問です。

    エクセルの関数についての質問です。 画像のように横に1、2、3…(100くらいまで続きます)縦にA、B、Cの行があります(端が切れちゃってますが、A2にA、A3にB、A4にCです) B2から横の列にはそれぞれ☆や○等いろいろな記号が入ります。 そしてこの記号には特定の値が決められています。☆=10、○=5、△=3 B3から横には、B2の記号にそった数字が入ります。(10やら5等) そこまではIF関数で式を作ったのですが、ここからが問題でして… B2から横に1から100まで、記号(B3から横に数字)を入力していった時のB3列の合計が仮に212とします。 合計した値が200を越えてしまった場合、B4からの列に数字を入力するようにしたいのです。 (200ギリギリ前くらいまではB3の列で、それを越える時からB4の列に入力します。その際、B3列に入る数字は消えます) なおかつ可能であれば、このB4からの列に入るのはランダムにできるといいのですが…(画像では○の数字を下ろしていますが、☆の数字をおろしても良いし、△の数字をおろしても良い) ●計算式によって入力された数字(B3列)を特定の数字を越えた場合、別の枠(B4列)に移す関数はありますでしょうか?? ●また、それをランダム(関数)で選ぶことは可能でしょうか?? よろしくお願いします。

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

    A列1行からB列1行を引き算して、+になれば○を、-になれば×をC列1行に入れる関数を教えて下さい。    A       B      C 1 20050621   20050623     × わかりにくくですみませんが、教えて下さい。

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

    A列に1,2,3・・・と回数があり、B列に一桁の数字(0~9)がランダムにあり、C列(C1)には『=IF(B1=1,"○","")』とあり、C2以降オートフィルでコピーされています。 B列の数値が『1』の時にだけC列に『○』が入りますが、D列に『C列の○と○の間隔』を数字で表示したいのですが、『=IF(B10=1,COUNTBLANK(C2:C9)+1,"")』としても、オートフィルで全てのD列にコピーしても参照セル範囲がランダムなので上手く行きません。 ○印が出現したら直前回の○印からの出現間隔を関数で自動表示したいのですが、関数が分かりません。あるいは関数の組合せ方法が思い浮かびません。 分かりやすく言うと、例えばナンバーズなどのある桁の0から9までの数字のうち、任意の数字が出現するたびにその横の列に○印を付け、さらにその横の列に出現した間隔を自動で表示できる関数が知りたいのです。 言葉で上手く表現できませんが、分かる方教えて下さい。お願いします。

  • エクセル関数

    次のような場合の関数をご教示頂けないでしょうか? ・A列には、時々連続する通し番号が入っています。 例 1 2 3 4 4 4 5 6 7 7 7 7 7 8 ・B列には、A列が1個の数字の行には 0 が、複数の数字の行には 1 が入っています。 例 0 0 0 1 1 1 0 0 1 1 1 1 1 0 ・C列に、関数で次のように自動入力したいのです。  B列が 0 なら 0  B列が 1 のグループの先頭行には 1  B列が 1 のグループの途中の行には 2  B列が 1 のグループの最後の行には 3 例 0 0 0 1 2 3 0 0 1 2 2 2 3 0 どういう関数になりますでしょうか? よろしくお願い致します。

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

    エクセルのIF関数について質問をさせて頂きます。 現在、下記のような条件で抽出できる式を考えているのですが、 中々思うような式が思い浮かびません。 例えば、     A列  B列  C列  D列 1行目  111 2行目  222 3行目  333 4行目  444 5行目  555 6行目  666 7行目  777 8行目  888 9行目  999 上記のようなシートがあったとして、     A列  B列  C列  D列 1行目  111       999 2行目  222       333 3行目  333   ○   123   × 4行目  444 5行目  555 6行目  666 7行目  777 8行目  888 9行目  999   ○ 上記のように、例として C列の1行目に「999」と入力した場合、A列の9行目に「999」の数字があるので、その横のB列に「○」 C列の2行目に「333」と入力した場合、A列の3行目に「333」の数字があるので、その横のB列に「○」 C列の3行目に「123」と入力した場合、どこにも該当番号がないので、入力したC列の横、即ちD列の3行目に「×」を表示 要は、A列のどこかに該当数字があった場合にはその数字の横(B列)に「○」、どこにも該当数字が無い時には、入力した数字の横、D列に「×」を表示するような数式を考えています。 IF関数を使えばできるような気がするのですが、色々と試してみても中々うまくいきません。 下手な説明で分かり辛いかもしれませんが、どなたかご存知の方がいましたら、ご教授の程頂ければ幸いです。 どうぞ宜しくお願い致します。

  • 関数 数式 Excel

    すみませんが教えてください! E列に下のような関数を入れたところ正しく表示されませんでした・・・ どうぞよろしくお願いします。 A列(数字・空白を含む)が 1 の場合”◎” A列が1以外の場合は B列(別シートから参照のVLOOKUP関数が入っている)と C列(別シートから参照ののVLOOKUP関数が入っている) を足した数字が D列(別シートから参照ののVLOOKUP関数が入っている) が同じなら ”OK” 違うなら ”NG" と表示させたいので =IF(A1=1,"◎",IF(D181=(B181+C181),"OK","NG")) としてみましたが"◎"が表示される表示は正しいのですが "OK" "NG"が正しく表示されません。 これに加えていずれのセルにも空白が存在するのでエラーを出さないようにしたいです。 よろしくおねがいします!!

  • エクセルの関数

    A列に数字が数字が入っています  B列にもA列に近い数字が入っています たとえば A2に51 B2に50  の場合 C2には51と表示 A3に32 B3に34  の場合 C3には34と表示 したいのです。 ようするに 同じ横の数字で C列に関数を入れて A列とB列を比べて 大きな数字の方を入どんな関数をいれたらいいでしょうか?

専門家に質問してみよう