この記事は自分用の覚書です。
K.Yaさん。
この前の「フィルターオプションの設定」に関して、「複数のセルの組み合わせが重複しているデータ」を除いた表を作る件をまとめました。
またわからなくなるようなことがあったら、このページを見てください。
(8月15日:説明が間違えていたところを直しました。ご指摘ありがとうございました。)
■例:列「メーカー」のセルと、列「製品」のセルの組み合わせに、重複がない状態を作る。
Windows8 Pro 64ビット + Excel2013
処理の対象になるのは次のような表。
「メーカー」が「パナソニック」、「製品」が「テレビ」の行が3つある。
これを「パナソニック」と「テレビ」の組み合わせについては、1行あるだけの表にする。

「フィルターオプションの設定」を使う。
(「データ」タブ-「並び替えとフィルタ」-「詳細設定」)
■フィルターの準備と実施
1.フィルターをかける対象である表と同じ「列見出し」を、表とは別の行に作る。
2.作った「列見出し」より下の行に、「検索条件」を書き込んでいく。
作った「列見出し」から下の行が、「フィルターオプションの設定」の「検索条件範囲」になる。
図では15行目から下の範囲。
もとになる表と異なる列の同じ行に「列見出し」を入力しない理由は、フィルターが実行されて、重複する行が非表示になったときに「検索条件」も非表示になるのを避けるため。
(検索条件も非表示になってかまわないのなら、異なる列の同じ行を使ってもよい)
3.「検索条件」を入力していく。
(検索条件の詳細については、このページの下部を参照)
フィルターは「データを抽出する機能」なので、「検索条件」は「元の表から抜き出したいデータ(抽出後の結果)」になるように作る。
「メーカー」が「パナソニック」の行は抜き出したいので、「メーカー」の下のセルに「パナソニック」と入力する。( A16 のセル)
「製品」列には何も入力しない。
この条件で、列「メーカー」で「パナソニック」と入力してある行をすべて抽出する。
続けて、パナソニック以外のメーカーを抽出するために、A17 に
<>パナソニック
と入力。
「パナソニック以外」とは、「パナソニックではない。パナソニックと等しくない」ということ。エクセルで「等しくない」を意味するには <> (「不等号」)を使う。
フィルターの検索条件は、もとになる表に対して適用される。
最初の条件で抽出された結果に対して、2つ目の条件が適用されるのではない。
これで必要な条件はすべて入力したことになる。条件を入力後は次のようになる。

4.フィルターオプションの設定を実行する。
(「データ」タブ-「並び替えとフィルタ」-「詳細設定」)
・「抽出先」では「選択範囲内」にチェック。
・「リスト範囲」は、 A1 から B13 を選択。
表全体を選んでいるのがポイント。
表全体を選んで重複を省く操作をすると、全く同じ行たちを重複とみなす。
つまり、図では「パナソニック」と「テレビ」の組み合わせになる3つの行たち。
・「検索条件範囲」は、 A15 から B17 を選択。
・「重複するレコードは無視する」にチェック。
列「メーカー」で「パナソニック」がある行を抜き出すと、列「製品」で「テレビ」がある3つの行を抜き出すことにもなるので、それを1つにするため。
5.「OK」をクリックすると、 A1 から B13 の表にフィルターが実行される。
「パナソニック」と「テレビ」の組み合わせになる3つの行のうち、2行目は表示されて、5行目と10行目が非表示になる。
(「メーカー」が同じパナソニックでも、「製品」がテレビ以外なら表示されている。)

■フィルターオプションの設定の「検索条件」について
・異なる行はOR条件での検索
・同一行はAND条件での検索
16行目に「パナソニック」と入力しています。意味は、
列「メーカー」で「パナソニック」という入力があるものは抜き出す。
になります。
17行目の「<>パナソニック」。
この条件は、同じ「メーカー」の列で行は異なっているため、OR条件。
意味は、
もしくは、「パナソニック」以外を抜き出す。
になります。
列「製品」では条件を入力していません。
意味としては、
列「製品」については、抜き出す際の条件は付けないですべて抜き出す。
です。
「製品」の列は無視して何もしない。という意味ではありせん。
フィルターを実行するとは、何かを「抜き出す」ことに違いないからです。
フィルターオプションで条件の指定がないのは、無視して何もしないという意味ではなく、「条件は付けないで、すべて抜き出す」ということです。
AND条件は同じ行にします。たとえば、16行目に「パナソニック」、「テレビ」と入力します。
意味は、
列「メーカー」が「パナソニック」、かつ、列「製品」が「テレビ」であるものを抜き出す。
になります。
これだと重複しているものだけが表示された結果になります。
■文字列を入力しただけの場合は前方一致
例の表だと、
パ
と入力するだけで、
パナソニック
が検索の対象になります。
この場合、「パ」に続く文字がある場合は、それも対象になります。
表では、「パ」と入力するだけでもよかったのですが、わかりやすくするために「パナソニック」と入力しています。
それと、「 = を付けなければ前方一致( = を付けると完全一致)で検索を行う」ということを、常に意識しながら操作してください。そうでないと思わぬミスを起こすことがあります。
例の表では、「パナソニック」以外に「パナソニック」という文字が付いたものはないとわかっているので、等号を付けないで「パナソニック」と書きました。
ただし、文字列を入力しただけだと前方一致で検索しますから、この場合は、「パナソニック○○」など「パナソニック」に続いて別の文字があるものも検索の対象に指定していることになります。
例のようにデータが少なければ、もし「パナソニック○○」が混ざっていても一目で気づけるでしょうが、データが多くなってくると、「パナソニック」だけを対象にしたつもりで、「パナソニック○○」が混ざっていることに気づかないままになるかもしれません。
■= (等号)を付けると完全一致
="文字列"
と入力すると完全一致で検索を行います。
エクセルでは、式の中で使う文字列は "" (ダブルコーテーション)で囲むのがルールです。
="パナソニック" で パナソニック のみが対象になります。
■ワイルドカード( * と ? )が使える。
* (アスタリスク)を付けると「任意の文字列」を指定したことになります。
*パナソニック
と入力すると、前方一致と後方一致を同時に指定したことになります。
前方一致で
パナソニック と パナソニック○○
さらに、後方一致で
□□パナソニック
も検索の対象になります。
* は「任意の文字列」を対象にするので、
パナソニック*株式会社
と入力すると、
パナソニック と 株式会社 の間に文字があるもの(何文字でも)
と、
パナソニック株式会社
を検索の対象にします。
? (クエスチョンマーク)を付けると、「任意の一文字」を指定したことになります。
パナソニック?????????株式会社
のように ? の個数を変えることで、パナソニック と 株式会社 の間に ? の個数の文字が入っているものを対象にできます。この場合は ? が9つあるので9文字入っているものを対象にします。
パナソニックコミュニケーション株式会社 だとか。
ただし、検索条件で文字列X に付けた ? の個数よりも、表中の文字列X に続く字数のほうが多い場合は、それらのデータもすべて検索の対象になります。
パナソニック株式会社
パナソニックコミュニケーション株式会社
パナソニック商事
とあって、
パナソニック???
と入力してあると、パナソニックに続く ? の個数が3つなので、
パナソニック株式会社
パナソニックコミュニケーション株式会社
が抽出されます。
パナソニック商事 は、パナソニックに続く文字数が2個なので検索対象になりません。
■別のシートに抽出する。
抽出したデータを別のートに書き出すこともできます。
抽出結果を別シートへ書き出す場合は、別シートを開いてからフィルターオプションの設定の操作をします。
たとえば、sheet1にある表を使って、sheet2に結果を出したければ、sheet2を開いてから行います。
このときは、「抽出先」を「指定した範囲」にします。
そして「抽出範囲」に sheet2の任意のセルを指定します。
最近のコメント