- ベストアンサー
excelで特定データ抽出
EXCELでの抽出作業?を、教えて頂けませんでしょうか。 A B 1 2安藤 D 3横山 D 4後藤 A 5岩田 C というデータ表(具体的にはシフト表)があったとします。 ここで、B列のCの者をB1に表示(この場合、岩田)したいのです。 併せて、AとCが同居する場合は、Aを優先表示(この場合、後藤)するようにしたいのです。 試行錯誤しましたが、うまくいきません。よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
#2のお礼の中の質問に対し =INDEX($A$2:$B$100,IF(ISERROR(MATCH("A",$B$2:$B$100,0)),MATCH("C",$B$2: $B$100,0),MATCH("A",$B$2:$B$100,0)),1) に対し ●$A$2:$B$100 => $A$2:$E$100 のように広げる ●MATCH(3か所)の中の範囲指定の$B$2:$B$100を OFFSET($A$2,0,COLUMN()-1,100,1),0)に変える。 ーーー 式は B1に =INDEX($A$2:$E$100,IF(ISERROR(MATCH("A",OFFSET($A$2,0,COLUMN()-1,100,1),0)),MATCH("C",OFFSET($A$2,0,COLUMN()-1,100,1),0),MATCH("A",OFFSET($A$2,0,COLUMN()-1,100,1),0)),1) B1の式をE1まで複写 ーーー テストデータと結果 後藤 安藤 横山 横山 安藤 D A C C 横山 D B A A 後藤 A B B A 岩田 C C A B
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
B1セルに =INDEX($A$2:$B$100,IF(ISERROR(MATCH("A",$B$2:$B$100,0)),MATCH("C",$B$2:$B$100,0),MATCH("A",$B$2:$B$100,0)),1) と入れる。 意味はB列にAがなければ一番上のCをとる。 A,Cともにない場合、式が長くなるので略。同じ考えの延長でできるので、自分で考えてください。 A2:B5に 安藤 D 横山 D 後藤 A 岩田 C のデータでテスト。 B列のA-Dをいれてテストしてみてください。
お礼
早速ありがとうございました。 試してみたら、うまくいきました。 あつかましいようですが、 B列のような操作が、「C列、D列、E列、・・・・」同様に続く場合、どうなるのでしょう。強引にINDEXで試しても無理でした。 こちらでも考えて見ますが、ご存知でしたらお教えください。
補足
できました。 「INDEX($A$2:$A$100]とし、 MATCHの範囲をそれぞれ希望の範囲にすれば解決しました。 ありがとうございました。
「AとCが同居する場合」の意味が分かりません。別の言葉で具体的に説明願います。
補足
申し訳ありませんでした。 B列に「A」と「C」がいる(同居)場合です。 今回の例では、「A後藤」「C岩田」になりますので、A後藤が優先されます。 また、後藤がD(Aがいない)ならC岩田が該当します。
お礼
すいませんでした。 先ほどの「できました」の送信中に、回答してくださったのですね。 ありがとうございました。