アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセルで8000行20列位あるデータの中から
A列に30という数値の入っている行と
A列が空白になっている行を抽出し
なおかつ元のデータをその抽出したデータだけに置き換えたい
(A列が30と空白以外の行は削除してしまいたい)
のですがどのような方法がありますか?
なお、毎月同じような行数のデータを、同じように加工しなければ
ならないので簡単に出来るやり方を教えて下さい。
宜しくお願いします。

A 回答 (3件)

(1)VBAで行う


(2)フィルタオプションの設定で行う
(2)は別シートに出すのにコツがいります。
ーー
空白セルは扱いがややこしいので、99に置換しておきます。
下記の99は元は空白セル。(本番では99は多で起こらない値を考えてください)
コード計数
3012
9911
2112
2214
1134
3025
235
304
9911
1510
ーーー
Sheet2のD1:E3に
コード計数
30
99
と条件を作っておく。
ーーーー
Sheet2を選択しておく。
データーフィルターフィルタオプションの設定
ダイアログが出るが
指定した範囲をON
リスト範囲 Sheet1!$A$1:$B$11
検索条件範囲 $D$1:$D$3
抽出範囲  $A$1:$B$19
と選択して(各々の斜め矢印をクリックして、範囲を選択すればよい、シートの選択はシートタブのクリック)
OK
結果
コード計数
3012
9911
3025
304
9911

ーーー
>元のデータをその抽出したデータだけに置き換えたい
は元へ(Sheet1)へコピー張り付けすればよい。
>毎月同じような行数のデータを、同じように加工しなければ
ならないので簡単に出来るやり方を教えて下さい
マクロの記録をとると
Sub Macro1()
Sheets("Sheet1").Select
Range("A2:A11").Select
Selection.Replace What:="", Replacement:="99", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
'以上置換操作
'以下フィルタオプション
Sheets("Sheet1").Range("A1:B11").AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Range("D1:D3"), CopyToRange:=Range("A1:B19"), Unique:= _
False
End Sub
これを下記に修正する。
(1)データ行の多少、毎月で最終行の変動
(2)Sheet1,Sheet2の両方が対象になることを明確化に対応。
Sub Macro1()
Worksheets("Sheet1").Select
d = Worksheets("Sheet1").Range("A65536").End(xlUp).Row
Worksheets("Sheet1").Range("A2:A" & d).Select
Selection.Replace What:="", Replacement:="99", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
'---
Worksheets("Sheet1").Range("A1:B1" & d).AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Worksheets("Sheet2").Range("D1:D3"), CopyToRange:=Worksheets("Sheet2").Range("A1:B1000"), Unique:= _
False
End Sub
ーー
結果は手操作と同じになりました。
ーー
空白は99などに置き換えなければダメかどうかゆっくり検証できないので、とりあえず急いで上記でまとめた。
    • good
    • 0

次の方法は如何でしょうか。


データ表シートをsheet1、見出し行が無い場合、任意の見出し行を挿入して下さい。
(1)別シートにA1を空白、A2に=OR(sheet1!A2=30,sheet1!A2="")(2)B1,B2を選択→データ→フィルタ→フィルタオプションの設定→警告ボックスはOKとして下さい。
(3)以下の操作をマウスで実施した方が簡単です。
  ・指定した範囲にチェックを付け
  ・リスト範囲欄に表範囲を設定
  ・検索範囲欄に$A$1:$A$2
  ・抽出範囲欄に$B$1
   以上を設定後→OK
    • good
    • 0

列の先頭行が項目行なら「データ」「フィルタ」「オートフィルタ」を設定


A列の先頭セルを選択、右に出る▼を押してオプションを選択
「30」「と等しい」
「or」
「」「と等しい」
でEnterするとご希望の行のみ選択した状態になります。
範囲全体をコピーして、あたらしいシートに貼り付けすれば
不要な行を削除できます。
    • good
    • 0

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