プロが教える店舗&オフィスのセキュリティ対策術

初心者です。
よろしくお願いします。

エクセルで、下記の様な表があります。
①~⑦行まであり、ABCの3種類のデータを入力してある状態です。
C列に文字が入力されている場合だけ、自動で別表にABC列のデータを抽出したいです。
下記の場合だと、②③⑥行のみを抽出したいです。
関数でできますでしょうか?
教えていただけると助かります。
よろしくお願いします。

①A B C
②10 20 あ
③ 30 い
④ 40
⑤50 60
⑥ 70 う
⑦ 80

また、②③⑥を抽出して別表を作る場合、C列に文字が出てきたらどんどん抽出した表の下にデータを付け足す様にしたいのですが、
その様なことはできるのでしょうか?

よろしくお願いします。

A 回答 (3件)

自分なら、D列を作業列にしてD列の値を元に検索を行います。



D1セルに
 =COUNTA(C$1:C1)
と入力して必要な行までD1セルを複製します。

これで、C列に値があるときだけ数値が増える列ができました。
この増えたときの数値の行を拾うようにすれば良いのです。
これはMATCH関数とINDEX関数の組み合わせで行います。
さらにROW関数で数値を指定します。(これにより数式をコピーした時に数字を一つずつ増やす事ができます)

そしてデータを検索した結果を表示する左上のセルに
 =INDEX(A:A,MATCH(ROW(A1),$D:$D,0)),""
と入力し、
そのセルを横に2つ複製したのちに、
入力と複製した3つのセルを必要な行まで複製します。
しかし、
該当するセルの数以上を表示させようとするとエラーになるので、
 =IFERROR(INDEX(A:A,MATCH(ROW(A1),$D:$D,0)),"")
と、エラー処理をします。(Excel2007より古いバージョンではIFERROR関数を使えません)

・・・
配列数式を使うのが一番スマートですが、何をしているのか理解していないと同じ問題に直面した時に今と同じように困ることになります。

また、前の回答者さん同様、A列にデータがない時には抽出される値は「0」になるため、同様の処置をしてください。
「エクセルで条件を満たすデータがある時のみ」の回答画像3
    • good
    • 0
この回答へのお礼

ありがとうございます。
できました!

お礼日時:2017/11/06 16:42

[No.1]の補遺



提示式を入力する前に、セル E2 の値が 0 のときはフォント色を白にする[条件付き書式]を設定されたい。
    • good
    • 0

添付図参照(Excel 2013)


E2: =IFERROR(INDEX(A$1:A$100,SMALL(IF($C$2:$C$100<>"",ROW(A$2:A$100),""),ROW(A1))),"")
【お断り】上式は必ず配列数式として入力のこと
「エクセルで条件を満たすデータがある時のみ」の回答画像1
    • good
    • 0
この回答へのお礼

ありがとうございます。
試してみます。

お礼日時:2017/11/06 15:18

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!