- ベストアンサー
エクセルでの質問
A列にリスト(1行目から10行目)があり、B列の1~10行目までに 1か空欄が入っているとします(1は6個だとします)。 B列で1が入っているリスト6個のA列のリストを上から順々に C列に出すようにするには、C列の1行目から10行目まではなんて 式を入れればよいですか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
これはそんなに簡単な関数ではありませんよ C1の式は =INDEX(A:A,LARGE(INDEX(($B$1:$B$10=1)*ROW($B$1:$B$10),),COUNTIF($B$1:$B$10,"=1")-ROW(A1)+1)) になります。下方向にコピーしてください でもこのままだと7行目以降が#NUM!エラーになるはずです。エラーが出ないようにするなら、式は =IF(COUNTIF($B$1:$B$10,"=1")-ROW(A1)>=0,INDEX(A:A,LARGE(INDEX(($B$1:$B$10=1)*ROW($B$1:$B$10),),COUNTIF($B$1:$B$10,"=1")-ROW(A1)+1)),"") となります。 なおB列の「1」は数字と解釈しました。文字列の"1"なら式の変更が必要です
その他の回答 (3)
- nekoron07
- ベストアンサー率37% (69/184)
A列の左側に列を挿入して、 =COUNT($C$1:C1) と入力して下にコピー。そしてB、C列の右側のD列に =IF(ISNA(VLOOKUP(ROW(),$A$1:$B$10,2,0)),"",VLOOKUP(ROW(),$A$1:$B$10,2,0)) と入力して下にコピー、で出来ました。
- maron--5
- ベストアンサー率36% (321/877)
◆こんな方法もありますよ C1=INDEX(A:A,SMALL(INDEX(SUBSTITUTE(N($B$1:$B$10=1),0,10^5)*ROW($B$1:$B$10),),ROW(A1))) ★下にコピー
- kimino_naha
- ベストアンサー率33% (26/78)
もしB列に 1 が入っていれば、C列にA列の内容をだし、それ以外は空白という式がC1に入るは =IF(B1=1,A1,"") となります。後は10行目までドラッグしてください。