- ベストアンサー
Excelの条件式で列を表示させる方法は?
- Excelの条件式で列を表示させる方法を教えてください。
- 具体的には、G1とG2に対応したA列を表示させる方法が知りたいです。
- よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
G列だけでよければ =INDEX(A:A,SUMPRODUCT((B$1:B$5=E1)*(C$1:C$5=F1)*ROW(A$1:A$5))) 下へコピィします。
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
エクセルには、2列に有る値をそれぞれ共に一致する行を探す関数はありません(注)。1原化するために、作業列を作るのが判りやすい。その場合各列データについて、定桁式の結合をしないとおかしなことになる。 1と10と、11と0が同じ110になるような結合では困る。 例 B列 C列 D列 E列 3 22 0322 322 4 15 0415 415 2 10 0210 210 4 10 0410 410 C列は文字列の例で =TEXT(B1,"00")&TEXT(C1,"00") D列は数字の例で=B1*100+C1 です。以下ではD列の例でやることにすると F列 G列 H列 4 15 い 4 10 え H1の式は =INDEX($A$1:$A$10,MATCH(TEXT(F1,"00")&TEXT(G1,"00"),$D$1:$D$10,0)) これを下方向告に式をデータ数だけ行う。 結果 上記H列 === B,C列で4-15の組み合わせが2つ以上出現しないことを質問に 書くべきです。あってもMATCHやVLOOKUP関数では探せません。 (注)1つの関数は存在しない。関数を組み合わせれば、その回答が出るかもしれない。出たとしても、それを読み解いたり、応用するのは、初心者には難しいものとなろう。 ーーー VBAでやるとしてもB列で4のデータを絞り込み(まず中間的に保持し、保持したものを対象に15を探すことになる。 それ(一時溜め込み)がイヤなら、全行に渉って、B列4AND C列15か比較しないとならない。それをF,G列行数だけ繰り返すことになる。
お礼
回答有難うございます。 やはり列を追加した方がわかりやすいのですね。 >B,C列で4-15の組み合わせが2つ以上出現しないことを質問に 書くべきです。あってもMATCHやVLOOKUP関数では探せません 2つ以上出現しないとは言っていません。2つ以上出現した場合は別のやり方をしないと出来ないのですね。
D1:=B1+C1/100 E1:=RANK(D1,D:D) F1:=ROW() G1:=MATCH(F1,E:E,0) H1:=OFFSET($A$1,G1-1,0) I1:=OFFSET($A$1,G1-1,1) J1:=OFFSET($A$1,G1-1,1) D1からJ1を下へ4行目までコピー
お礼
回答有難うございます。 細かくなっていたのでひとつずつ意味を考えることができました。 I1とJ1が同じだったので J1を=OFFSET($A$1,G1-1,2)で使用しました。
お礼
完璧です。 有難うございました。自分でINDEXとSUMPRODUCTを使用してやってみたのですが、全然出来なかったので・・・何が間違っていたのか気付くことが出来ました。
補足
他の方より指摘があったのですが、C4も15だった場合にはどうすれば良いでしょうか?