Excel (一般機能)

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

 
(Windows 10全般 : Excel 2010)
「*」が表示されていない行を含む複数行を取り出したい
投稿日時: 20/02/18 09:19:01
投稿者: しょこらんたん

    A    B    C    D      E      F      G      H
1                性別     生年  カナ            
2                             氏名
3            コード               〒   住所

5                性別     生年  カナ            
6                             氏名
7        * コード                〒   住所
8            
 
コードの前に「*」がついていないデータが必要で、1つのデータは3行1組です。なお元のデータは空白行や地区ごとの集計結果などの行を含んでおり、キレイに並んでいません。
A列に関数をいれ、その結果で不要な行を抽出して行ごと削除したいと思います。
どんな関数をいれたらいいでしょうか。よろしくお願いします。
 

回答
投稿日時: 20/02/18 11:21:24
投稿者: んなっと

   A B  C   D   E   F   G H  I  J   K
 1  1      性別  生年  フリ       1    性別
 2  2             氏名       2      
 3  3   コ         郵便  住所   3  コ    
 4  4                     4      
 5       性別2 生年2 フリ2       9    性別3
 6              氏名2      10      
 7   * コ2        郵便2 住所2   11 コ3    
 8                       12      
 9  9     性別3 生年3 フリ3      17    性別5
10 10            氏名3      18      
11 11   コ3        郵便3 住所3   19 コ5    
12 12                     20      
13       性別4 生年4 フリ4             
14              氏名4             
15   * コ4        郵便4 住所4          
16                              
17 17     性別5 生年5 フリ5             
18 18            氏名5             
19 19   コ5        郵便5 住所5          
 
A1
=IF(INDEX(B:B,ROW()+2-MOD(ROW()-1,4))="*","",ROW())
下方向・↓
としてA列で並べ替え またはA列でフィルター(空白セルのチェックだけ外す)
 
関数なら
 
I1
=IFERROR(SMALL(A:A,ROW()),"")
下方向・↓
J1
=IF($I1="","",INDEX(C:C,MATCH($I1,$A:$A,0))&"")
右方向・→下方向・↓

投稿日時: 20/02/18 20:52:15
投稿者: しょこらんたん

んなっとさん、いつもありがとうございます!
データが規則正しく並んでいるとA列は希望通り空白になるのですが、不規則な空白行やその他のデータが間にくると、A列は空白にならないようなんですが…

回答
投稿日時: 20/02/18 21:50:50
投稿者: んなっと

あなたが質問の「具体例」を手抜きしたからうまくいかないんですよ。
もう回答はこれで終了します。あとは自分で例外処理をしてください。
スレッドを閉じてください。
 
   A B  C   D   E   F   G H  I  J   K
 1  1      性別  生年  フリ       1    性別
 2  2             氏名       2      
 3  3   コ         郵便  住所   3  コ    
 4                       9    性別3
 5       性別2 生年2 フリ2      10      
 6              氏名2      11 コ3    
 7   * コ2        郵便2 住所2   20    性別5
 8                       21      
 9  9     性別3 生年3 フリ3      22 コ5    
10 10            氏名3             
11 11   コ3        郵便3 住所3          
12                              
13                              
14       性別4 生年4 フリ4             
15              氏名4             
16   * コ4        郵便4 住所4          
17                              
18                              
19                              
20 20     性別5 生年5 フリ5             
21 21            氏名5             
22 22   コ5        郵便5 住所5          
 
A1
=IF(OR(COUNTIF(B1:H1,"?*")=0,IFERROR(MATCH("~*",B1:B$1000,0),5)<4),"",ROW())
下方向・↓

投稿日時: 20/02/18 23:17:55
投稿者: しょこらんたん

んなっとさん、気を悪くさせて申し訳ありませんでした。
頑張ってみます。
ありがとうございました。