• ベストアンサー

エクセルでの質問

A列にリスト(1行目から10行目)があり、B列の1~10行目までに 1か空欄が入っているとします(1は6個だとします)。 B列で1が入っているリスト6個のA列のリストを上から順々に C列に出すようにするには、C列の1行目から10行目まではなんて 式を入れればよいですか?

質問者が選んだベストアンサー

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

これはそんなに簡単な関数ではありませんよ 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)
回答No.4

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)
回答No.3

◆こんな方法もありますよ C1=INDEX(A:A,SMALL(INDEX(SUBSTITUTE(N($B$1:$B$10=1),0,10^5)*ROW($B$1:$B$10),),ROW(A1))) ★下にコピー

回答No.2

もしB列に 1 が入っていれば、C列にA列の内容をだし、それ以外は空白という式がC1に入るは =IF(B1=1,A1,"") となります。後は10行目までドラッグしてください。

関連するQ&A

専門家に質問してみよう