エクセル・オートフィルタの使い方についての質問

このQ&Aのポイント
  • エクセルでオートフィルタの使い方がうまくいかない状況です。以前はオートフィルタの逆三角を開いてデータを確認していたのですが、最近は選択が一番上のデータに戻ってしまい、どこまで確認したかがわかりません。
  • データ自体が似たような数字の一覧なので、一番上のデータに戻ってしまうことがあります。以前のように一つずつ下がっていく方法で全てを確認したいです。
  • Windows XPとExcel 2003を使用しています。どのようにすれば以前の状態に戻すことができるでしょうか?PC初心者なので、わかりやすい説明をお願いします。
回答を見る
  • ベストアンサー

エクセル・オートフィルタについて

エクセルでオートフィルタの使い方について質問です。 2000ほどの行があるデータをひとつづつオートフィルタで同じデータがかぶっていないかチェックしています。 以前まではオートフィルタの逆三角を開くと、開いた列のデータがバーっと一覧で出るので 一つ選んで、データを見る。確認したらまた、逆三角を開いて矢印キーで一つ降りて、データを見る。 というのをやっていたのですが、 今回データチェックをしようとしたらうまくいきませんでした。 というのも、オートフィルタの逆三角を開くとその列のデータの一覧が出るのですが、 選択して確認し、また逆三角を開き矢印キーで降りる。というのを5回ほど連続でやると、 なぜか、データの一覧の一番上のデータに選択が戻ってしまうのです。 データ自体が似たような数字の一覧なので、気付かない内に、一番上のデータに戻っていたり、 一番上に戻ったあと、どこまで調べたのかがわからなくなり、困っています。 以前のようにオートフィルタで一つづつ下がっていくやり方で全部確認をしたいのですが、 どうしたら元に戻りますでしょうか? PC初心者なので、説明もままならない状態で申し訳ありませんが、 わかる方いらっしゃましたら回答よろしくお願いいたします。 ・Microsoft Windows XP ・Microsoft Office Excel 2003 を使用しています。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.4

ANo.1です。 > 実際やってみたのですが、2以上を削除したところ > 2000行近くあったものが22行になってしまいました。 オートフィルタでC列が2以上の物を表示したとき、表示されたのは確かに重複したデータでしたか? 重複したデータでなければ、C列の式が正しくないか、オートフィルタの条件が正しくない可能性があります。

nimoooo
質問者

お礼

何度もご回答ありがとうございます。 今月は時間もぎりぎりになってしまったため、 結局一つ一つチェックする方法で作業を終えました。 来月また同じ作業を進める予定ですので 今回教えていただいた数式の中で、何か間違っていたのか、 データを見比べながら試していきたいと思います。 ありがとうございました。

その他の回答 (4)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.5

No.3です! チェックが目的というコトですので・・・ 余計なお世話かもしれませんが、マクロを二つ用意してみました。 操作方法は前回同様ですが、「チェック」のマクロで重複分は薄い黄色にするようにしています。 確認できたら「削除」のマクロを実行すると重複分が削除されます。 前回同様1行目はタイトル行でデータは2行目以降にあるとします。 (A列データでの重複としています) Sub チェック() 'この行から Dim i, j, k, L As Long Application.ScreenUpdating = False Cells.Interior.ColorIndex = xlNone L = Cells(Rows.Count, 1).End(xlUp).Row j = Cells(1, Columns.Count).End(xlToLeft).Column For i = 2 To L If WorksheetFunction.CountIf(Range(Cells(2, 1), Cells(i, 1)), Cells(i, 1)) > 1 Then Range(Cells(i, 1), Cells(i, j)).Interior.ColorIndex = 36 k = k + 1 End If Next i Application.ScreenUpdating = True MsgBox "全" & L - 1 & "データ中" & vbCrLf & k & "個が重複しています。" End Sub Sub 削除() Dim i As Long Application.ScreenUpdating = False Cells.Interior.ColorIndex = xlNone For i = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1 If WorksheetFunction.CountIf(Range(Cells(2, 1), Cells(i, 1)), Cells(i, 1)) > 1 Then Rows(i).Delete End If Next i Application.ScreenUpdating = True End Sub 'この行まで 今回もご希望の方法と違うかもしれませんが・・・ 参考程度でやってみてください。m(_ _)m

nimoooo
質問者

お礼

何度もご回答ありがとうございます。 今月は時間もぎりぎりになってしまったため、 結局一つ一つチェックする方法で作業を終えました。 来月また同じ作業を進める予定ですので 今回教えていただいたマクロの仕様を試したいと思います。 ありがとうございました。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんばんは! 横からおじゃまします。 最終的に重複データを削除したい!というコトですよね? オートフィルタではなく、VBAでの一例です。 画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面が出ますので、 ↓のコードをコピー&ペーストしてマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) ※ 1行目はタイトル行でデータは2行目からあるとします。 ※ 検索列をA列としてみました。(A列で重複するものがあれば削除) Sub test() 'この行から Dim i As Long Application.ScreenUpdating = False For i = Cells(Rows.Count, "A").End(xlUp).Row To 2 Step -1 If WorksheetFunction.CountIf(Range("A2:A" & i), Range("A" & i)) > 1 Then Rows(i).Delete (xlUp) End If Next i Application.ScreenUpdating = True End Sub 'この行まで ※ 重複を検索する列が仮にB列であれば > For i = Cells(Rows.Count, "A").End(xlUp).Row To 2 Step -1 >If WorksheetFunction.CountIf(Range("A2:A" & i), Range("A" & i)) > 1 Then の2行を >For i = Cells(Rows.Count, "B").End(xlUp).Row To 2 Step -1 >If WorksheetFunction.CountIf(Range("B2:A" & i), Range("B" & i)) > 1 Then のように「A」の部分を「B」に変更してください。 ※ 一旦マクロを実行すると元に戻せませんので、別Sheetでマクロを試してみてください。 ご希望の方法でなかったらごめんなさいね。m(_ _)m

nimoooo
質問者

お礼

最終的にはダブっている箇所を削除するのですが、 ダブっている箇所をチェックしたい。というのもあるので、今回の作業には適さないようです。 ただ、すごく便利です! 以前チャレンジした際に初心者ということもあり、すごく時間がかかって難しく、 結局思ったとおりにできなかったという過去があったので 教えていただいたマクロを入れたら、あっさり最終作業のところまで飛んだのが すばらしかったです。 ありがとうございました!

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.2

> 作業的に抽出した後にダブっている行があった場合、一つを残して、他の行を削除するというところまでやっています じゃあ、C2に↓の式をいれて下にコピー =IF(A2="","",COUNTIF(A$2:A2,A2)) 1.オートフィルタでC列が2以上の物を表示。 2.表示された行は重複している2つ目以降の行なので、表示されている行を削除。 3.フィルタ解除。 とにかく、今のやり方は効率が悪いです。

nimoooo
質問者

お礼

何度も回答ありがとうございます。 実際やってみたのですが、2以上を削除したところ 2000行近くあったものが22行になってしまいました。 通常は800行ほど残らなくてはいけないのですが… 質問ばかりで申し訳ありませんが、なぜでしょうか?

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.1

直接の回答ではありませんが…… オートフィルタで1つづつ重複がないかを見るのはかなり無駄です。 作業列を1列追加して、重複しているものだけ表示させるようしてはいかがでしょう。添付の図の例ですと、C2セルに↓と、入れて下にコピーしてあります。 =IF(A2="","",COUNTIF(A:A,A2)) あとはオートフィルタでC列が2以上の物だけを表示すれば重複を抽出できますよ。

nimoooo
質問者

お礼

言葉が足らずに申し訳ありません。 作業的に抽出した後にダブっている行があった場合、一つを残して、他の行を削除するというところまでやっています。 ほぼ、ダブっているので、ひとつひとつ上から順に見ていくのが わかりやすくてベストなのですが・・・。 相変わらずデータの一番上に自動的に戻ってまい・・。本日はあきらめることにしました。

関連するQ&A

  • エクセルのオートフィルタ

    オートフィルタは空白行または空白セルがあっても データはうまく並べ替えられますか? 以前、並び替えを使った時は空白セルがあったためか 10列程1000行程のデータでしたが、右2列程が 反映されず、データがばらばらになってしまって 作り直すのに苦労しました。今はオートフィルタを 使う時も範囲指定でデータがある範囲を全て選択して います。

  • エクセルのオートフィルタ機能について

    スミマセン。初心者ですのでかなり低レベルな質問かと思いますがよろしくお願いします。 エクセルで作られた表があります。 D列に年齢、E列に性別が入力されていて、 オートフィルタ機能を使って、30代、女性を抽出しなくてはなりません。 そこでD列とE列すべてを選択し、データ→フィルタ→オートフィルタを選択しました。 それぞれの列の先頭に矢印が出てきました。 そこでD列の矢印をクリックし、オプションを選択。 出てきたオートフィルタオブションに 30歳 以上 AND 39歳 以下 と選択してみたのですが、何も抽出されません。 30歳 より大きい AND 39歳 より小さい でもダメでした。 性別の方は「女性」を選択したら出てきたので問題はないのですが。 私は何を間違えているのでしょうか? 是非教えてください。 ちなみに一度だけいじっていた時にちゃんと抽出されました(^-^; ただ、次にやったらまた抽出されなくなり、 正しく抽出された時と、そうでない時との違いが自分ではわかりません(><”) よろしくお願いします。

  • エクセル2007で行にオートフィルタをかけたい

    エクセル2007で行データにオートフィルタをかけたいのですが できません. 範囲をどのように選択してもかならず列データにオートフィルタが かかってしまうのですが どうにかして行データにオートフィルタをかけたいです. どなたかご教授願います

  • エクセルのオートフィルタについて

    エクセルのオートフィルタについて教えてください。 エクセル2003です。 データ-並べ替え で複数の列に対してレベルごとに昇順で並べ替えをしますが、これをオートフィルタではできないのでしょうか? 例えば、A列にクラスデータがあり、それをオートフィルタで昇順にしておいて、それをレベル1として、B列に点数があり、それをオートフィルタで降順にして、それをレベル2とするような使い方です。

  • 【Excel2003】オートフィルタの下向き三角がおかしいです

    オートフィルタをかけると出る、セル右下位置の「下向き三角」について質問です。 特定のファイルのみ、オートフィルタを解除(データ-フィルタ-オートフィルタでチェックをはずす)しても下向き三角が消えません。 チェックをはずした後は、下向き三角をクリックしても無反応です。 再度オートフィルタをかけると、普通に反応して使えるようになります。 オートフィルタを解除したら消えるように、要するにまっとうな表示にさせるにはどうしたらいいでしょうか?

  • エクセルのオートフィルタ機能について

    お世話になります。 エクセルのオートフィルタ機能(エクセル2003)がうまく効かず困っております。 【状態】 1112345 1114567 1117890 上の様なデータの中で頭3桁が111のデータを抽出したいとします。 (1)オートフィルタのオプション検索にて、「111を含む」を使用し、探したい条件を入力実行→結果は何も表示されない(空白セルのみ) (2)文字列の影響かと思い、検索範囲のセルから「111」をコピペして入力実行するも、結果同じ プルダウンで表示される一覧から「1112345」を選択すればその項目は表示される。 「~と同じ」の条件では上手く機能するので、仕方なくLEFTで頭3桁を列追加して検索かけてますが、 データ量が多くいかんせん不便。。。 「~を含む」機能が使えないのは何が悪いのでしょうか? 当方エクセルに詳しい訳ではないので打つ手が見つからず困っております。 起動時マクロ設定の有効、無効の選択ありますがどちらもダメでした。

  • エクセルのオートフィルタ機能について教えてください。

    エクセルのオートフィルタ機能を使って列にチェックマークがついているもののみ抽出したい場合、「空白以外」を選択しても、行の途中からフィルターがかからなくなってしまうことがあります。 フィルタは行タイトルにつけてあります。 なぜでしょうか?

  • エクセルのオートフィルターの活用を教えて下さい

    1.エクセルでオートフィルターを使って抽出したデータをコピーし   新規ファイルに形式を選択し貼り付け「値」OKをチェック。 2.新規修正されたデータを元のオートフィルター状態のデータに簡単  にコピー貼り付けでしょうか?

  • エクセル2007でのオートフィルタ

    エクセル2003にてオートフィルタを活用しています。 先日、エクセル2007が入っている新しいパソコンで このファイルを開き、オートフィルタの機能を使用したところ 思うように動かなかったので質問させて下さい。 2003では A列をオートフィルタで昇順、降順をすると B列のデータも連動して動きました。 しかし、2007では A列のみがソートされ、B列は元のまま。。。 これは仕様なのでしょうか? それとも何か設定が必要なのでしょうか?

  • エクセルのオートフィルタなのですが。

    オートフィルターで表示した(可視セル)のみをコピーして、別の列にそのデータを貼り付けたいのですが、貼り付けると、オートフィルターで非表示になっているデータまでも張り付けされて困っております。 どのようにしたら解決できますか? ご存知の方いましたら教えてください。