- ベストアンサー
表のある番号のものだけ抽出する
------ 01|a|あ ------ 01|b|う ------ 01|c|お ------ 02|d|き ------ 02|e|け ------ 上記のような表があったとします。 別のシートの、とある一箇所に例えば「02」と入力すると、 --- d|き --- e|け --- と、出るような表を作りたいと考えています。 それぞれ「d」「e」「き」「け」と入力されている部分には どのような式を入力すればいいでしょうか。 もちろん「01」と入力したら、以下のように出るようにしたいです。 --- a|あ --- b|う --- c|お --- 元となるデータの行は1000行くらいで、 抽出したい行数は最小で1行、最大で20行くらいです。 よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
No1です。 すみません一部範囲に記載誤りがありましたので、次の数式をお試し下さい。 =IF(ROW($A1)-1<COUNTIF(Sheet3!$A$1:$A$1000,$A$1),INDEX(Sheet3!B$1:B$1000,SMALL(IF(Sheet3!$A$1:$A$1000=$A$1,ROW(Sheet3!$A$1:$A$1000),999),ROW($A1))),"")
その他の回答 (2)
- rin01
- ベストアンサー率43% (33/76)
こんにちは~♪ こんな方法もあります。。。 =IF(COUNTIF(Sheet3!$A:$A,$A$1)<ROW(A1),"",INDEX(Sheet3!B:B,SMALL(INDEX(SUBSTITUTE((Sheet3!$A$1:$A$1000=$A$1)*1,0,10^5)*ROW($1:$1000),),ROW(A1))) 普通に、Enter 右と下へコピーしてください。。 。。。Ms.Rinでした~♪♪
お礼
ありがとうございます。
- mu2011
- ベストアンサー率38% (1910/4994)
表範囲がシート3のA1:C1000、抽出シート1の番号入力をA1セルとします。 以下の数式を任意セルに入力後、縦横にコピーしてお試し下さい。 尚、配列数式を使用していますので、入力完了時にshift+ctrl+enterと同時押下して下さい。 =IF(ROW($A1)-1<COUNTIF(Sheet3!$A$1:$A$1000,$A$1),INDEX(Sheet3!B$1:B$1000,SMALL(IF(Sheet3!$A$1:$A$1000=$A$1,ROW(Sheet3!$A$1:$A$6),999),ROW($A1))),"")
お礼
ありがとうございます。 いただいた式だと、シート3に以下のような表を用意した場合、 1 aa あああ 1 aa あああ 1 aaaf たたあ 2 a たたあ 2 a たたたた 2 a ららら 2 a あらら 2 b あらららら 3 b じゃあ 4 b はあああ 4 bcc あああ 4 cc だだだ 「1」をシート1のA1に入力するとできたので、3くらいから先はどうしても#N/Aになってしまいます。 どこを直せばいいでしょうか? よろしくお願いいたします。
お礼
ありがとうございます。 できるようになりました!