オートフィルタの使い方と注意点

このQ&Aのポイント
  • オートフィルタを使用する際に、複数の列に同じ条件で一括でフィルタをかける方法を知りたい。
  • オートフィルタを使用して表を作成している際、1日ずつフィルタをかけるのが大変になってくる。
  • オートフィルタを使う際の注意点として、作業中にわかりづらくなることがあるので注意が必要。
回答を見る
  • ベストアンサー

先程オートフィルタについて質問させて頂いた者です

先程は的確なアドバイスありがとうございました。 更に質問させて頂きたい事があり、 厚かましいと思いましたがこちらに投稿させていただきました。 (nishi6さまに直接質問させて頂きたくてこちらに投稿しましたが もし間違っていたのなら申し訳ありません) 今回もオートフィルタのついての質問ですが 現在添付ファイルのような表をつかって作業をしています。 列は1か月分続きますが、作業は1週間ごとに区切って行っています。 1週間のうち、1回目の返品をオレンジ色、2回目の返品を青色。 1回しか返品がなかった場合は色づけなしで区別しています。 (ちなみに先程の質問でフィルタを解除したくなかったのは左端の「返品」です) はじめは色づけする作業から始まります。 1日ずつ空白セルのみ・空白セル以外でフィルタをかけては解除しての延々繰り返しで よくわからなくなることもしばしばあります(笑) この作業の中で複数の列を空白なしでフィルタをかけることがあるのですが 日数が増えてくると1日ずつフィルタをかけるのが大変になってくるので 一回でできる方法はありませんでしょうか? 複数列に同じ条件で一括でフィルタをかける方法があれば知りたいです。 大変厚かましいのは重々承知の上ですが どうかお知恵をお貸しください。。。 よろしくお願いいたします。

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

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.3

>「Sub 色付け()」から「End Sub 」までを・・・ (1)開発タブ>Visual Basicを選択。VBE画面が表示されます。(Alt+F11でも可) (2)表示されたVBE画面のメニューで、挿入>標準モジュールとします。 (3)表示された標準モジュールに「Sub 色付け()」から「End Sub 」までをコピーして貼り付けます。 (4)Excel Sheetに戻ります。(Alt+F11でも可) (5)色を付けたいセル領域を選択します。     広いセル領域の選択は、領域の左上セルを選択した状態で、     名前ボックスに右下セルを入力して、「B2:h34」のようにして、     Shift+Enterとすれば簡単に選択できます。慣れれば簡単です。 (6)開発タブ>マクロ>色付け を実行します。 マクロは、選択したセル領域の色付けをクリアした後、色付けを行っています。 従って、1回色付けをした後、データ修正があれば、修正した後、再度マクロ色付けを実行してください。 マクロは色付けを行った後、選択領域が選択されたままです。どこかセルをクリックすればいいんですが、最後の2行目の「End With」の前に、「  .Cells(1, 1).Select」を挿入すれば、選択した領域の左上セルが選択された状態で終わります。試してみてください。   Next   .Cells(1, 1).Select  End With End Sub

finafina
質問者

お礼

お礼が遅くなり申し訳ありません。。 結局今回教えて頂いたやり方ではうまくできませんでしたが 何度となく親切丁寧にお答えくださったので こちらをベストアンサーにさせていただきます。 この度はありがとうございました(^^♪

finafina
質問者

補足

先程実際に登録して実行してみましたが 色が消えただけでした。。 金曜日から木曜日まで列をまるごと選択してから実行したり 列まるごとではなく、表の部分だけ選択してみたりしましたが やはり結果は同じでした。。 選択の仕方がおかしったのでしょうか?

その他の回答 (3)

  • msMike
  • ベストアンサー率20% (363/1775)
回答No.4

》 …すればその方に個人的に質問できるものだと勘違いしておりました。 そうなんですよ。私も同じ苦い経験をしたことがあります。

finafina
質問者

お礼

そうですよね(笑) あの表記だと勘違いしてしまうのも無理はないと思いました。。

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.2

実を言うと、Excelでフィルター機能を使ったことはほとんどありません。 理由は、質問に書かれているように、面倒くさいのと作業や処理が個人の知識や技量に依存して、大事な確認が難しくなることです。 経験からですが、Excelで1つの同じ作業が時間単位の場合、何らかの別方法がありました。Excelの機能を使ったり、無ければマクロということになります。 社内では、5分以上かかる作業は別方法(正確、確認が簡単、誰でもできる作業)があると言っていました。 この質問の場合、フィルターをかけることに注力した方法を考えてもあまり効果がないように思えます。 添付図を見る限り、色付けは簡単な理屈に見えます。しかし、内容について少し疑問があります。 (1)この添付図は、1日から7日(8日)までに対応する結果? (2)10008行と10011行の3日にオレンジ色が付いているのはなぜ? (3)例えば、10002行で、10日に「2」とかになってもどこにも色はつかない? (4)1日から7日までの処理の次は、8日から14日、15日から21日となっていく? (5)前月末のデータは今月初めに影響しない? (6)3回以上の返品は無い? 私なら、2か月分のデータを登録し、2か月分で色をつけるか、選択して1週間ごとに色を付けると思います。 「1週間」ごとの作業の意味が、月初めの1日からだと、月末の数日はどうする?というような疑問も起きてきます。 実際の処理内容が分からないので、勝手なことを書いているとおもいます。ご容赦を。 フィルターのかけ方は難しいので、マクロを考えました。 色をつけたいセル(日付の方)を選択して、マクロ「色付け」を実行します。 10008行と10011行の3日にはオレンジ色が付きませんでした。広いセル領域の選択は、名前ボックスを使えば簡単です。 Sub 色付け()  Dim rng As Range '// セル  Dim rw As Long  '// 行カウンタ  Dim topRw As Long '// A列の行  Dim col As Long  '// 列カウンタ  Dim col1 As Long '// 1回目の列  Dim col2 As Long '// 2回目の列  Dim col3 As Long '// 3回目の列    With Selection   .Interior.ColorIndex = 0 '// 塗りつぶしを消す   topRw = .Cells(1, 1).Row '// A列の行      '// 選択した範囲を行単位で調べる   For rw = 1 To .Rows.Count    '// 返品を調べる    If Range("A" & (topRw + rw - 1)) = "返品" Then     '// 各日の入力を調べる     For col = 1 To .Columns.Count      If .Cells(rw, col) <> "" Then       If col1 = 0 Then '// 1回目        col1 = col       ElseIf col1 <> 0 And col2 = 0 Then '// 2回目        col2 = col       Else        col3 = 99  ''// 3回目以上の入力を避ける       End If      End If     Next     '// 色付け     If col1 <> 0 And col2 <> 0 Then      .Cells(rw, col1).Interior.ColorIndex = 40 '// オレンジ      .Cells(rw, col2).Interior.ColorIndex = 37 '// 青     End If     col1 = 0: col2 = 0    End If   Next  End With End Sub

finafina
質問者

補足

遅い時間にも関わらず、またまたご回答ありがとうございます。 まず、疑問点についてですが (1)この添付図は、1日から7日(8日)までに対応する結果?    厳密にいえば毎週金曜日~木曜日(添付していただいた表に基づくと月~土)ですが    1日を非表示にするのを忘れておりました。 (2)10008行と10011行の3日にオレンジ色が付いているのはなぜ?    申し訳ありません。    単純に色づけミスなので、本来なら色づけなしです。 (3)例えば、10002行で、10日に「2」とかになってもどこにも色はつかない?    はい。    10日は次の週なので、対象外になるので色はつきません。 (4)1日から7日までの処理の次は、8日から14日、15日から21日となっていく?    はい。    ただし、月の最終日が週の途中でもそこまでで集計します。    (今月ですと、9/30は月曜日ですが、その週は10/3までではなく30日までです。) (5)前月末のデータは今月初めに影響しない?    はい。影響しません。    月が変わった時点でリセット?されます。 (6)3回以上の返品は無い?    はい。ありません。 正直上司から依頼されたものを処理してるだけなので、色々疑問に思う箇所もあります。 (これらの処理で完成した表に基づいて何らかの分析をするそうですが。。) マクロを考えて頂きありがとうございました。 私の求めている結果は添付して頂いた画像であってると思います。 ただ、マクロ自体あまり詳しくなくて 「マクロの記録」から登録してする方法しかやり方がわかりません。。 たくさん書いていただいた「Sub 色付け()」から「End Sub 」までを 「開発」から「visual basic」を開いてどこかにコピペすれば実行できるのでしょうか?

  • msMike
  • ベストアンサー率20% (363/1775)
回答No.1

》 先程は的確な… 「先程は」ではドレのことか一般人には分かりません。URLで示すべきです。 例えば貴方のこの質問の場合はブラウザの上端に記されている https://okwave.jp/qa/q9657501.html?f=mail_favorite_new のことです。 「先程」に該当するソレをコピーして貼り付ければ御の字です。

finafina
質問者

お礼

大変失礼いたしました。 以前別の質問でいろいろアドバイスをくださった方に個別に質問がしたくて 「このユーザーに質問する」から質問すればその方に個人的に質問できるものだと勘違いしておりました。 その方法で質問してもすべてに公開されるんですね。 私の知識不足でした。。。 この質問は一旦削除して、改めて質問しなおすことにします。 ご指摘いただきありがとうございました。

関連するQ&A

  • 複数列に同じ条件で一括でフィルタをかける方法

    現在添付ファイルのような表をつかって作業をしています。 列は1か月分続きますが、作業は1週間ごとに区切って行っています。 1週間のうち、1回目の返品をオレンジ色、2回目の返品を青色。 1回しか返品がなかった場合は色づけなしで区別しています。 はじめは色づけする作業から始まります。 1日ずつ空白セルのみ・空白セル以外でフィルタをかけては解除しての繰り返しで よくわからなくなることもしばしばあります(笑) この作業の中で複数の列を空白なしでフィルタをかけることがあるのですが 日数が増えてくると1日ずつフィルタをかけるのが大変になってくるので 一回でできる方法はありませんでしょうか? (【例】1~3列目を一度に空白セルのみ表示というフィルタをかける) 複数列に同じ条件で一括でフィルタをかける方法があれば知りたいです。 よろしくお願いいたします。

  • エクセルのオートフィルタで複数の列にフィルタをかけ

    エクセルのオートフィルタで複数の列にフィルタをかけて内容をチェックして解除してまた別の列にフィルタをかけてチェックして…を繰り返す作業をしています。 複数のフィルタを解除する際に全解除をしたいのですが あるひとつのフィルタだけはかけたままにしておきたいのです。 となると、ひとつずつ手作業で解除することになるのですが 解除し忘れてしまうことがしばしば起こります。 解除したくない列のみを残して、それ以外のフィルタを簡単に解除する方法はありませんでしょうか?

  • openofficeのフィルターに関して

    一度質問投稿したのですが私の説明不足だったみたいなのでもう一度投稿し直しました 先ほど回答下さった方ありがとうございました。 質問内容ですが 私はMicrosoftoffice2010を使用してます。Microsoftofficeを持ってない後輩にopenofficeでエクセルと同じような作業ができるよう教えたいのですが openofficeのフィルターがよくわからなく困ってます(;´・ω・) エクセル2010で列にフィルターをかけ数量が入ってる行だけを抽出できますが openofficeでオートフィルターを使用しようとすると変なところにフィルターがかかるとか 標準フィルターで列指定と関係を=で空白でないで選択すると一番上の空白のみになったり。 空白でないって空白以外と違うんでしょうか? 上記エクセル2010のような作業は不可能なのでしょうか?? 叉フィルター抽出以外で何かいい方法や openoffice以外にエクセルに近いおすすめ無料ソフトなどあれば教えて頂きたいです。 画像にて説明内容の方確認をお願いしますm(__)m

  • オートフィルターによって、抽出したセルにだけペーストしたい。

    例えば、 5行ごとの世帯表があります。 A列には氏名が入力されています。 2人世帯は2行しか使いませんので、下3行は何も入力されていない行です。 つまり、10世帯分で100行あり、その中に合計38名分の氏名が入力されています。 列を挿入して、B列に新しい列を作りました。 この列に、別シートの同じ世帯員の生年月日が入力された列(ブランクの無い38行の38個のセル)を貼り付ける場合、どのように貼り付けるのでしょうか。 オートフィルターで、A列の空白セルを除いてから貼り付けたら、オートフィルター解除後、空白セルにも貼り付いてしまったので、ずれてしまいました。 オートフィルターで、省いた(隠した)セルに貼り付かないように貼り付けるにはどうすればいいのでしょうか。

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

    オートフィルタ機能はあくまでその列に入力した数字(数値)しか表せないのでしょうか? その列を空白にして、オートフィルタ機能をクリックしたとき数字が表示されてその数字を空白のセル内に入力したいのですが・・・。 可能ですか?

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

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

  • エクセルのフィルタについて質問があります。オートフィルタを設定すると、

    エクセルのフィルタについて質問があります。オートフィルタを設定すると、通常は1行目のセルにフィルタがかかると思います。 2列目以降のセルにフィルタをかけることはできないのでしょうか?

  • オートフィルターの検索について

    こんにちは。 エクセルで作ったデータベース8000件のデータがありあす。オートフィルターで検索すると、確かにデータはあるのに、検索されないのはなぜでしょうか? ちなみにその列に空白セル等はありません。

  • エクセル オートフィルタで絞り込みをしたデータの色つけ

    エクセル2007を使用しています。 オートフィルタで絞り込みをしたデータの数列をまとめて色つけしたいのですが、 できる時とできない時があり、なぜできる時とできない時があるのかその違いも判りません。 数件でしたら諦めて一つ一つセルを選択して色をつけるのですが、 100件近くなるとこの作業がむなしくなってきてしまいます。 どなたかご教授下さい。よろしくお願いいたします。

  • Excel VBAでオートフィルタで抽出したデータの一部だけ貼り付けるには(第2弾)

    今週質問タイトルの件で回答いただき解決したのですが、更なる操作を希望したく質問させていただきました。内容は Sheet2にあるデータに複数条件でソートをかけ、ある数字(1から18まで)を入れたら、オートフィルタでE列のデータの選択部をSheet1のある部分に1行貼り付けるという作業です。以下のInputBoxに数字を入れるところからです。 (ソート後、どの数字を入れるか判断) ↓ InputBoxにある数字"○"(1から18まで)を入れる ↓ オートフィルタE列「"○-"で始まる」or「"-○"で終わる」 ↓ 抽出されたデータの右隣のF列(1列だけ)のデータ(上から17個分)を選択 ↓ 選択部をコピー ↓ Sheet1を選択。Sheet1の"K5"セルに行列を入れ替えて貼り付け というものでしたが、これはできました。ここから先です。 Sheet1のU5セルに先ほどインプットした数字"○"(1から18までのどれか)を入れる ↓ Sheet2にてオートフィルタE列「"○-"で始まる」or「"-○"で終わる」によって抽出されたデータの一番上の文字列から「"○-"」もしくは「"-○"」を除いて残った数字(○を除く1から18までの数字)をSheet1のW5セルに(先ほどのセルとは1個飛ばして)入れる ↓ 以下抽出されたデータの上から2番目の文字列を同様に操作し、1個飛ばしのセルY5に入れる。これがBC5セルまで続く というものです。難しいとは存じますが、どなたか教えていただけませんか? よろしくお願いいたします。

専門家に質問してみよう