重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

Excel2003 複数の条件を満たすデータを抽出する関数を教えて下さい!
下のデータで、A列でB、B列で赤を選んだ人は「みかん」という「みかん」を抽出する関数を教えて頂けませんでしょうか?
データシートとは別に集計シートを作成しています。
お忙しい中恐れ入りますが、ご教示下さいますようお願い申し上げます。。。

●データ
ABC
1A赤みかん
2B赤りんご
3C白いちご
4B青いちご
5D赤みかん
6A青みかん
7C黄りんご
8E赤バナナ

A 回答 (8件)

#1の回答者mu2011さんの返答がないので、解釈がばらばらです。



>重複や妥当性は考慮していません。
重複はないのでしょうか?

>又、B、赤ならば「りんご」と思いますが如何でしょうか。
もし、B、赤 で「みかん」を出す規則性がほしいです。
「りんご」であっているのでしょうか?

>お教え下さった数式をコピペして確認したところ「みかん」と出てしまいます
どのセルに貼り付けたのでしょうか?
タイトル行があるのでは?
また、重複があるのでは?

>同じ式を複数のセルで試したところ、バラバラの値が返ってきます。
同じ数式ではないのでは? オートフィルによるコピーでは参照先が変わります。

当方が質問から読み取った回答。
G3セルに
=IF(AND(E3="",F3=""),"",
INDEX(C:C,MIN(IF(A2:A10=E3,IF(B2:B10=F3,ROW(A2:A10))))))
[Ctrl]+[Shft] +[Enter] で確定、配列数式です({}で囲まれる)
結果は「りんご」になり、重複がある場合は、一番上の合致するもののみが表示されます。
簡易エラー処理と合致する行番号を返し、INDEXで表示しています。
「Excel2003 複数の条件を満たすデ」の回答画像8
    • good
    • 1

NO1です。



>お教え下さった数式をコピペして確認したところ「みかん」と出てしまいます。。。
>何故でしょう・・

 ⇒ご例示のデータ例と実際の内容が相違しているからだとと思います。

>また、同じ式を複数のセルで試したところ、バラバラの値が返ってきます。
>何かご存じでしたら、お教え下さいませ。

 ⇒提供した数式は、相対参照形式ですの同数式をコピーするとセル参照式が変位するからです。
  絶対参照形式に数式を変更して下さい。
  =INDEX($C:$C,SUMPRODUCT(($A$1:$A$10="B")*($B$1:$B$10="赤")*ROW($A$1:$A$10)))
    • good
    • 0

このニーズは相当あり、この質問コーナーにも割合たびたび出るが、エクセルの関数では、抜き出し問題は苦手なんです。


まあVBA向きの課題だと思います。しかしVBAに思い至らない人は、関数でとなってしまうわけです。
「imogasi方式」でGoogleで照会すると、たくさんの同タイプの質問例と、その回答が出ます。
imogasi方式は方法のうち、作業列として1列を使う方法ですが、どちらかといえば、関数式が中程度のものを使って出来ます。説明は繰り返しになるので今回略。
1つの式で出す関数式(と式複写)も毎度回答がありますが、初心者には式の意味が理解しにくいでしょう。それでもよければ、関数式を自分の場合にアジャストする力があれば、使ってみてください。
ーー
VBAの初心者的な方法は、下記のように少数行で出来ます。骨格は
Sub TEST01()
k = 1
For i = 1 To 10
If Cells(i, "a") = "A" And Cells(i, "b") = "赤" Then
Cells(k, "G") = Cells(i, "C")
k = k + 1
End If
Next i
End Sub
ーーーー
例データ
コード色商品
A赤みかん
B赤りんご
C白いちご
B青いちご
D赤みかん
A青みかん
C黄りんご
E赤バナナ
A赤チェリー
結果
みかん
チェリー
    • good
    • 0
この回答へのお礼

今回はVBAではなく、数式のみで対応できるものを探しておりました。
(苦手・・・ということもありますが)
ご親切にありがとうございました^^

お礼日時:2010/06/15 14:04

勘違いをしていたようですね。


シート2のA列にA,B,Cなどを入力し、B列に赤、青などと入力したときに答えとなるくだものの名前をC列に表示させるのでしたら、C1セルには次の式を入力して下方にオートフィルドラッグします。

=IF(A1="","",INDEX(Sheet1!C:C,SUMPRODUCT((Sheet1!A$1:A$1000=A1)*(Sheet1!B$1:B$1000=B1)*ROW(Sheet1!A$1:A$1000))))

あるいはシート1のD列を作業列としてD1セルには次の式を入力して下方にオートフィルドラッグします。

=A1&B1

しーと2のC1セルには次の式を入力して下方にオートフィルドラッグします。

=IF(OR(A1="",COUNTIF(Sheet1!D:D,A1&B1)=0),"",INDEX(Sheet1!C:C,MATCH(A1&B1,Sheet1!D:D,0)))
    • good
    • 0

シート1にデータがあるとしてシート2にまとめるのでしたらA列にA,B,Cなどを入力し、B列に赤、白など、C列にみかん、りんごなどと検索に必要なデータをデータを入力して、それに該当する件数をD列に表示させるとしたら、D1セルには次の式を入力して下方にオートフィルドラッグします。



=SUMPRODUCT((Sheet1!A$1:A$1000=A1)*(Sheet1!B$1:B$1000=B1)*(Sheet1!C$1:C$1000=C1))

あるいはまったく別な方法としてシート1のD列を作業列としてD1セルには次の式を入力して下方にオートフィルドラッグします。

=A1&B1&C1

シート2でA列、B列、C列は先と同様にしてD1セルには次の式を入力して下方にオートフィルドラッグします。

=IF(A1="","",COUNTIF(Sheet1!D:D,A1&B1&C1))
    • good
    • 0

=if(and(A1="B",B1="赤"),"みかん","")


でしょうか。
    • good
    • 0

=if(and(A1="B",B1="赤"),"みかん","")


でしょうか。
    • good
    • 0
この回答へのお礼

こちらのIF関数では出ませんでした。
ありがとうございました。

お礼日時:2010/06/15 15:06

一例です。


重複や妥当性は考慮していません。
又、B、赤ならば「りんご」と思いますが如何でしょうか。
=INDEX(C:C,SUMPRODUCT((A1:A10="B")*(B1:B10="赤")*ROW(A1:A10)))
    • good
    • 0
この回答へのお礼

ありがとうございます!
お教え下さった数式をコピペして確認したところ「みかん」と出てしまいます。。。
何故でしょう・・
また、同じ式を複数のセルで試したところ、バラバラの値が返ってきます。
何かご存じでしたら、お教え下さいませ。

お礼日時:2010/06/15 15:05

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!