- 締切済み
Excel2003 複数の条件を満たすデータを抽出する関数を教えて下さ
Excel2003 複数の条件を満たすデータを抽出する関数を教えて下さい! 下のデータで、A列でB、B列で赤を選んだ人は「みかん」という「みかん」を抽出する関数を教えて頂けませんでしょうか? データシートとは別に集計シートを作成しています。 お忙しい中恐れ入りますが、ご教示下さいますようお願い申し上げます。。。 ●データ A B C 1 A 赤 みかん 2 B 赤 りんご 3 C 白 いちご 4 B 青 いちご 5 D 赤 みかん 6 A 青 みかん 7 C 黄 りんご 8 E 赤 バナナ
- みんなの回答 (8)
- 専門家の回答
みんなの回答
- 某HN クロメート(Chromate)(@CoalTar)
- ベストアンサー率40% (705/1742)
#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で表示しています。
- mu2011
- ベストアンサー率38% (1910/4994)
NO1です。 >お教え下さった数式をコピペして確認したところ「みかん」と出てしまいます。。。 >何故でしょう・・ ⇒ご例示のデータ例と実際の内容が相違しているからだとと思います。 >また、同じ式を複数のセルで試したところ、バラバラの値が返ってきます。 >何かご存じでしたら、お教え下さいませ。 ⇒提供した数式は、相対参照形式ですの同数式をコピーするとセル参照式が変位するからです。 絶対参照形式に数式を変更して下さい。 =INDEX($C:$C,SUMPRODUCT(($A$1:$A$10="B")*($B$1:$B$10="赤")*ROW($A$1:$A$10)))
- imogasi
- ベストアンサー率27% (4737/17069)
このニーズは相当あり、この質問コーナーにも割合たびたび出るが、エクセルの関数では、抜き出し問題は苦手なんです。 まあ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 赤 チェリー 結果 みかん チェリー
- KURUMITO
- ベストアンサー率42% (1835/4283)
勘違いをしていたようですね。 シート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)))
- KURUMITO
- ベストアンサー率42% (1835/4283)
シート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))
- aokii
- ベストアンサー率23% (5210/22062)
=if(and(A1="B",B1="赤"),"みかん","") でしょうか。
- aokii
- ベストアンサー率23% (5210/22062)
=if(and(A1="B",B1="赤"),"みかん","") でしょうか。
お礼
こちらのIF関数では出ませんでした。 ありがとうございました。
- mu2011
- ベストアンサー率38% (1910/4994)
一例です。 重複や妥当性は考慮していません。 又、B、赤ならば「りんご」と思いますが如何でしょうか。 =INDEX(C:C,SUMPRODUCT((A1:A10="B")*(B1:B10="赤")*ROW(A1:A10)))
お礼
ありがとうございます! お教え下さった数式をコピペして確認したところ「みかん」と出てしまいます。。。 何故でしょう・・ また、同じ式を複数のセルで試したところ、バラバラの値が返ってきます。 何かご存じでしたら、お教え下さいませ。
お礼
今回はVBAではなく、数式のみで対応できるものを探しておりました。 (苦手・・・ということもありますが) ご親切にありがとうございました^^