<データ> のあるシートを「Sheet1」、<抽出>別シート を「Sheet2」とします。
A)一発で抽出する方法(配列数式)
1)Sheet2 A1 に
=IF(ROW(A1)<=COUNTIF(Sheet1!$2:$2,">0"),INDEX(Sheet1!$1:$1,SMALL(IF(Sheet1!$A$2:$CV$2=0,256,COLUMN(Sheet1!$A$2:$CV$2)),ROW(A1))),"")
をコピペし、[Shift] + [Ctrl] + [Enter] で確定します。
2)Sheet2 B1 に
=IF(ROW(A1)<=COUNTIF(Sheet1!$2:$2,">0"),INDEX(Sheet1!$2:$2,SMALL(IF(Sheet1!$A$2:$CV$2=0,256,COLUMN(Sheet1!$A$2:$CV$2)),ROW(A1))),"")
をコピペし、[Shift] + [Ctrl] + [Enter] で確定します。
3)Sheet2 A1:B1 を選択、下方向にコピーします。
B)二発で抽出する方法
1)Sheet1 A3 に
=IF(A2>0,COLUMN(),"")
と入力し、これを右方向に必要分コピーします。
2)Sheet2 A1 に
=IF(ROW(A1)<=COUNTIF(Sheet1!$3:$3,">0"),INDEX(Sheet1!$1:$1,SMALL(Sheet1!$3:$3,ROW(A1))),"")
Sheet2 B1 に
=IF(ROW(B1)<=COUNTIF(Sheet1!$3:$3,">0"),INDEX(Sheet1!$2:$2,SMALL(Sheet1!$3:$3,ROW(B1))),"")
をコピペします。
3)Sheet2 A1:B1 を選択、下方向にコピーします。
お礼
shiritaiさん、ありがとうございます。 とても速い回答で驚きました。 難しく考えていたので、これなら単純明快でわかりやすいです。 そうですよね~ 初心に戻った心境です。助かりました。 3行目、4行目に 行を追加できるかどうか、確認してから試してみようと思います。 完成したらご報告いたします。まずはお礼までです。