• ベストアンサー

エクセル関数で複数条件を 探す

表1で、A1 りんご B1 あまい       A2 ぶどう B2 まずい という表があります。   表2で、A1 りんご少しあまい       A2 ぶどうとてもまずい という表があります。  表1の「りんご」と「あまい」のふたつの条件を満たすものを表2のA列で探すという作業をしているのですが、関数を使って簡単に探す方法はありますか?  ちなみに今は 表1のA1とB1のふたつの条件を「りんご*あまい」としてCtrl+Fで 表2のA列で検索して 一致したら ○を 横につけていくという地道な作業をしています。4000件近くありますので何かいい方法ありましたらよろしくお願いいたします。

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

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

もしかしたらこの質問は表1の複数の条件組み合わせの1つに合致したら「○」をつけるという意味ですか? そうでないと表1に二つの条件が書かれている意味が分かりません。 質問の例では、表2で  りんご少しあまい  ○  りんごとてもまずい ○  ぶどう少しあまい という結果を得たいということと解釈しました。 そうだとすると表2のB1セルの式は以下の2つのようになります。どちらかを貼り付けて下方向にコピーしてください。  =IF(MAX(INDEX(ISNUMBER(FIND(表1!$A$1:$A$2,A1))+ISNUMBER(FIND(表1!$B$1:$B$2,A1)),))=2,"○","") もしくは  =IF(MAX(INDEX(COUNTIF(A1,表1!$A$1:$A$2&"*")+COUNTIF(A1,"*"&表1!$B$1:$B$2),))=2,"○","") なお「表1!$A$1:$A$2」「表1!$B$1:$B$2」の箇所は表1の条件の範囲に修正して下さい

shi-zuu
質問者

お礼

御礼が遅くなりました。その後何度も色々試してみました。結果的に一番思っていたものと近いものができました。ありがとうございました。

その他の回答 (5)

回答No.5

すいません。A1じゃなかったですB1に下記の式を入れて下さい。 B1=IF(AND(COUNTIF(A1,"りんご*")=1,COUNTIF(A1,"*あまい")=1),"○","") って、考えている間にたくさんの答えの書き込みがあったみたいですね;;

回答No.4

関数を入れるなら、COUNTIF()で りんご と あまい の 2つが入ったセルがあれば○を付けるという方法でどうでしょう? 下記の式は基本的にりんごが文の一番左側、 あまいが一番右側にあるのが前提です。 もし、文の中間にあるのなら"*りんご*"のように 両方をワイルドカードで挟んで下さい。 A1=IF(AND(COUNTIF(A1,"りんご*")=1,COUNTIF(A1,"*あまい")=1),"○","") この式をB列に入れ、下までドラッグコピーして引っ張れば 出来ると思います。

回答No.3

関数を組み合わせると1つのセルに納められますが、式がややこしくなるので、3列を使う方法を回答します。 まず、表2のC1セルに、 =IF(ISERROR(FIND(表1!$A$1,A1)),"",1) と式を入力します。FIND関数はFIND(A,B)と書くと、Bの文字列の中にAという言葉があるか探し、あればその最初の文字の位置を数字で返します。もしなければ、#VALUE!というエラーを返します。 そこで、ISERROR関数でこれがエラーかどうかを判断し、エラーなら""(何もひょうじしない)、見つかれば1を表示するようにします。 次に、表2のD1セルに =IF(ISERROR(FIND(表1!$B$1,A1)),"",1) と入力します。式はさっきと同じで、FIND関数の最初の引数がB1セルになっただけです。 そして、表2のE1セルに =if((C1="")+(D1=""),"","○") と入力します。 これはC1セルが""かD1セルが""の時は""を返し、それ以外(つまり両方に1がある時に○を返します。 あとは、このC1~E1を下に4000行分コピーするだけです。 E列に○があれば、両方の条件に合ったものということになります。 なお、C1,D1のセルで、表1!$A$1、表1!$B$1 と絶対番地表示にしておかなくてはなりません。

  • FEX2053
  • ベストアンサー率37% (7987/21355)
回答No.2

ちょっと考えれば簡単な作業ですよね。 求める結果は(「あまい」がある)AND(「りんご」がある)でしょ? (「○○」がある)は、=FIND("○○",A1) がエラーしてなければいいわけですから =ISERROR(FIND("りんご",A1)) で、(「りんご」がある)ならば「FALSE」が帰ってきますね。 同じように(「あまい」がある)ならば「FALSE」を返せますから、 =OR(ISERROR(FIND("りんご",A1)),ISERROR(FIND("あまい",A1))) これで「FALSE」が出てきたデータが「りんごがあまい」データです。 後は「データ」「フィルタ」で「FALSE」を検索すればオッケーです。

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.1

表2で B1=IF(COUNTIF(A1,表1!$A$1&"*"&表1!$B$1),"○","×")

関連するQ&A

  • Excelで複数条件を満たし残高を計算する関数

       A列     B列  C列     D列     E列  F列    日付     No. 商品名  仕入/販売  金額 残高 1  2010/12/1  101  りんご   仕入  ¥1,000    ¥- 2  2010/12/2  101  りんご   販売  ¥1,000    ¥- 3  2010/12/3  122  みかん   仕入  ¥1,200    ¥400 4  2010/12/4  122  みかん   販売  ¥800     ¥- 5  2010/12/5  135  バナナ   仕入  ¥1,300    ¥800 6  2010/12/6  135  バナナ   仕入  ¥300     ¥- 7  2010/12/7  135  バナナ   販売  ¥800     ¥- 8  2010/12/8  148  ぶどう   仕入  ¥2,000    ¥- 9  2010/12/9  148  ぶどう   販売  ¥1,500    ¥- 10 2010/12/10  148  ぶどう   販売   ¥500 ¥- 上記のようなEXCELの表があります。 B列No.(第一条件)、C列商品名(第二条件)が一致するものを 仕入から販売を引いてF列のような数字になるように残高を出したいです。 どんな関数でも構いません。 関数でできる方法があれば教えてください。 実際のデータ量が2000行くらいあるので手作業でするのが大変で…。 よろしくお願いしますm(_ _)m OS:WindowsXP Office:2007

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

    例えば、A列に「りんご」「みかん」「ぶどう」「梨」「洋梨」とあり(空白のセルもあります)、このA列に「りんご」もしくは「梨を含む」場合に、B列に「○」を表示させたいのですが、関数でできますか? 「りんご」だけとか「梨を含む」というように単一の条件で指定する方法はわかるのですが…。 職場の管理表で使いたいのですが、どうしても解決できないので、お力を貸してください。 どうかよろしくお願いします。 ちなみに以下のような結果を求めています。    A   B 1 みかん 2 りんご ○ 3 梨   ○ 4 ぶどう 5 洋梨  ○ 6 ぶどう 7 りんご ○

  • :【Excel】複数の条件を満たす合計を出す関数

    大変こまっております。みなさまのお力を貸してください!よろしくお願いします。 以前、このような質問がありました、  A    B    C 1 果物  銘柄  購入数 2 りんご ふじ  21 3 りんご 王林   3 4 ぶどう デラ  15 5 ぶどう 巨峰  16 6 りんご ふじ   2 7 ぶどう 巨峰   7 上記のような表があります。 別な場所に、りんご&ふじの条件を満たす場合の購入数の合計を出したいのですが、関数を教えて下さい。 SUMIFで複数の条件を指定することできるのでしょうか? そして、もちろん以下のような宣言文で可能なのですが、 SUMPRODUCT((A1:A7="りんご")*(B1:B7="ふじ")*(C1:C7)) なのですが、りんご、ふじの部分を数字にしてしまうと答えが0となり出てきません!! すごくこまってます・・・ なぜなのでしょうか?? まったく同じ宣言文で、宣言文ないの文字列に確答すつ数字を入力してます。 ちなみに下記のような場合です。 A  B    C 1 300 4000  200 2 300 5000   200 3 300 2000   200 4 400 4000  200 5 300 5000  300 6 500 2000   300 という数列があるとします。 んでやりたいことは、 複数の条件(2つ)を満たす時のC列の合計。 つまりは、A列の特定の数字とB列の特定の数字を満たすときの、C列の合計。 を出したいんです。 =SUMPRODUCT((A1:A6="300")*(B1:B6="5000")*(C1:C6)) と打ったのですが、どこか間違ってる点を教えて下さい。 これでゆうと、答えは500とでてきてほしいのですが・・ よろしくお願いします!!

  • 【Excel】複数の条件を満たす合計を出す関数

     A    B    C 1 果物  銘柄  購入数 2 りんご ふじ  21 3 りんご 王林   3 4 ぶどう デラ  15 5 ぶどう 巨峰  16 6 りんご ふじ   2 7 ぶどう 巨峰   7 上記のような表があります。 別な場所に、りんご&ふじの条件を満たす場合の購入数の合計を出したいのですが、関数を教えて下さい。 SUMIFで複数の条件を指定することできるのでしょうか?

  • Excelで複数条件を満たし残高を計算する関数

    画像のようなEXCELの表があります。 B列No.(第一条件)、C列商品名(第二条件)が一致するものを 仕入から販売を引いてF列のような数字になるように残高を出したいです。 どんな関数でも構いません。 関数でできる方法があれば教えてください。 実際のデータ量が2000行くらいあるので手作業でするのが大変で…。 よろしくお願いしますm(_ _)m OS:WindowsXP Office:2007

  • Excel複数条件を満たし残高を計算する関数(続)

    以前、下記の質問をさせていただきましたが、うまく稼働しないため(私の質問の仕方が悪く…) http://okwave.jp/qa/q6382052.html 再度実際の表に近い状態で質問させていただきます。 よろしくお願いします。 A列  B列   C列   D列   E列    F列   G列   日付  No.   商品名  金額  数量   区分   残高 1  12/1  101  りんご   7000   10   売上   0 2  11/2  101  りんご   7000   10   在庫   0 3  10/3  101  りんご   15000   15   在庫  15000 4  12/4  205  いちご   8000   10   売上   0 5  10/4  205  いちご   8000   10    在庫   0 6  11/5  205  いちご   8000   15    在庫   8000 7  10/5  306 バナナ   9000   10   在庫   2000 ←在庫のうち一部販売している 8  11/5  306  バナナ   7000    8   売上   0 9  12/3  411  みかん   2000   10   仕入   500 10 11/2  411  みかん   1000     5   在庫   0 11 12/5  411   みかん  1500    8   売上   0 12 12/3  523   ぶどう   2000   10   仕入   0 13 11/2  523   ぶどう   2000    10   売上   0 14 12/5  523  マスカット  1500  8    仕入   0 15 12/1  523  マスカット 1500    8    売上   0 上記のような表があります。 B列No.(第一条件)、C列商品名(第二条件)が一致して 在庫、仕入がある場合は在庫+仕入-売上、 在庫のみの場合は在庫-売上、 在庫がない場合は在庫-売上 になるようにG列のような数字になるように残高を出したいです。 ちなみに「いちご」のように在庫が複数ある場合がありますが その場合は、一番最新の日付の在庫として残高を出したいです。 またNo.は同じですが、「ぶどう」「マスカット」のように商品名が同一ではないものもあります。 それぞれの商品によって条件が違うので改行でわかりやすく表示しています。 1つの関数で処理することは可能でしょうか? 1つの関数で処理するのが困難であれば、いくつかの関数に分けて処理する方法でも構いません。 またどんな関数でも構いません。 関数でできる方法があれば教えてください。 実際のデータ量が2000行くらいあるので手作業でするのが大変で…。 よろしくお願いしますm(_ _)m

  • 行抽出・関数・複数条件

    以下の質問をみて、一つの条件のものを作ることは出来ました。 しかし、AND()やCOUNTIFS()などを用いながら自分なりに複数条件の行抽出をしてみようとトライしてみたのですが、きちんとした行を返してくれません。 どなたか、以下の質問を少し変えて、 ************************************************************** <A列> <B列> <C列> 7/1 りんご 100円 7/2 ぶどう 200円 7/2 すいか 300円 7/3 みかん 100円 このような表があって、100円とりんごを含む行をそのままの形で、 別のセル(同じシート内)に抜き出したいのですが。 7/1 りんご 100円 ************************************************************** といった表示をする関数を書いていただけないでしょうか。 よろしくお願いします。 http://okwave.jp/qa/q3200952.html

  • エクセル 複数条件を満たすデータを返す関数

    エクセルで、複数条件を満たした時にデータを返す関数をお教えください。 例えばA列に県名、B列に都市名、C列にアルファベットが入っている表があります。 イメージ・・・(カッコ内はセルの番地) (A1)神奈川県   (B1)横浜市    (C1)X (A2)神奈川県   (B2)横須賀市   (C2)Y (A3)千葉県    (B3)千葉市    (C3)Z この表があり、 (A5)神奈川県   (B5)横須賀市   (C5)??? このようにA5,B5のデータ(条件)に一致するアルファベットを C5に返す関数が必要です。(ここではYを返す) C列が数値の場合は、sumproduct等で可能と思いますが、 C列が文字の場合は使えないのではと考えています。 何か方法はありませんでしょうか?

  • エクセル 複数条件のカウント関数 

    エクセル初心者です。過去の質問等を確認しましたがわからなかったので 宜しくお願い致します。 A   B     男 ○ 女   × 女   ○ 男  × 男  ○ 男  × A列とB列が一致して1つとして数えたいです。 ○の数をカウントする方法まではなんとかなりました =COUNTIF(B3:B100,"○")&"" 男の○が何個かわかる関数を教えていただけないでしょうか。 2003年度版のエクセルを使用しております。

  • Excel データの個数を複数条件付きでカウントしたい

    OS:XP Ver.:Excel2003 Excelの関数で質問です。 いろいろ調べたのですがどうしてもわかりません。 お知恵をご拝借下さい。 A B C D 1月 2月 3月 りんご 250 0 300 みかん 150 80 0 りんご 88 150 200 いちご 0 300 85 ぶどう 0 350 89 (確認画面にするとずれてしまいますが、A列には品名、B~D列には月が入るようになっています。) 上記のような元データがあり、(実際はもっとたくさん) 1月    2月    3月 りんご みかん いちご ぶどう (こちらもずれてしまいますが、それぞれの月の品名ごとの集計を入れたいのです。) のような表を完成させたいと思います。 (1)表に入れるのは、合計数量ではなく【データの個数】です。 1月のりんごは2、みかんは1、という感じです。 ただし、0はカウントしたくないので、1月のいちごとぶどうは0を 返してほしいのです。 countifやsumproductなど考え付くあたり試してみましたが、うまくできません。 どういう数式(関数)を入れればよいのでしょうか? (2)2月以降のデータ範囲を指定する場合はどうすればいいのでしょうか?  1月ならA2:B6とするのかもしれませんが、2月の場合は1月列(B列)が不要ですよね?

専門家に質問してみよう