Excel (一般機能)

Excelの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(指定なし : 指定なし)
A列に所定文字がある行だけの抽出について
投稿日時: 22/10/27 13:37:09
投稿者: えっくん

お世話になります。        
Excelには以下の形態でデータが入っています。行は1000以上ありますので手作業では困難です。
 
A    B    C
B    時刻A    データ1
C    時刻B    データ2
B    時刻C    データ3
B    時刻D    データ4
C    時刻E    データ5
B    時刻F    データ6
        
この行の中で、A列にBの記載がある行だけに加工(Cがある行は削除)、あるいは別シートにB列だけを抽出したいと思っています。        
別の行に以下の式を入れて下にコピーすることで以下の様にBが入っている行だけを作ることができましたが、
=IF(A1="B",C1,"")
 
B    時刻A    データ1
 
B    時刻C    データ3
B    時刻D    データ4
 
B    時刻F    データ6
 
この4行を隙間なく並べる方法がわかりません。
 
教えて頂けないでしょうか。よろしくお願いします。

回答
投稿日時: 22/10/27 13:56:55
投稿者: taitani
投稿者のウェブサイトに移動

引用:
この行の中で、A列にBの記載がある行だけに加工(Cがある行は削除)、あるいは別シートにB列だけを抽出したいと思っています。

 
加工はどの列を行う予定でしょうか。(D 列から後とか?)

回答
投稿日時: 22/10/27 14:41:17
投稿者: んなっと

質問時には必ずExcelのバージョンを選んでください。
 
●作業列あり
D列に作業列
 
  A   B    C D E F   G    H
1 B 時刻A データ1 1   B 時刻A データ1
2 C 時刻B データ2 1   B 時刻C データ3
3 B 時刻C データ3 2   B 時刻D データ4
4 B 時刻D データ4 3   B 時刻F データ6
5 C 時刻E データ5 3           
6 B 時刻F データ6 4           
 
D1
=(A1="B")*1
 
D2
=D1+(A2="B")
下方向・↓
 
F1
=IFERROR(INDEX(A:A,MATCH(ROW(),$D:$D,0)),"")
右方向・→下方向・↓
 
●作業列なし
 
F1
=IFERROR(INDEX(A:A,AGGREGATE(15,6,ROW($1:$2000)/($A$1:$A$2000="B"),ROW())),"")
右方向・→下方向・↓
 
 
●最新のExcel
 
F1
=FILTER(A1:C2000,A1:A2000="B","")

投稿日時: 22/10/27 17:13:01
投稿者: えっくん

早速のコメントありがとうございました。
OSはWin10、Excelは365です。
 
【んなっと】さんの=FILTER(A1:C2000,A1:A2000="B","")
で目的の事はできました。
FILTERについては勉強します。
 
ありがとうございました。