[[20040906150849]] 『条件式に複数設定する方法』(すがやっち) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『条件式に複数設定する方法』(すがやっち)

毎度すいません。またまた質問させてください。
フィルタオプションのマクロを作っています。そこで該当するデータを抽出するために、条件を入力するセルに条件式を設定しています。条件式にはいろいろあると思いますが、その中で…

<>3

というのがあると思います。上の例だと3以外という意味ですよね…。

ここで、「3と4と6以外。」と設定したい場合はどのようにすればよろしいのでしょうか?

併せて別の質問ですが、Pを含むもの以外と設定したい場合は…

<>*P*

となると思いますが、「Pを含むもの以外とRを含むもの以外、それにQを含むもの以外。」と設定したい場合、どのようにすればよろしいでしょうか?

例:230010020と2300P3300と2300Q3200と2300R3400とデータがある。条件式に上記鍵括弧内の式を設定し、最終的に230010020のデータだけ抽出したい。

以上、宜しくお願いいたします。


 ご質問の、「3と4と6以外。」と設定したいとおっしゃるのが、右から3桁目のことだとしますと、
 このように検索条件を指定しますと、抽出できるように思います。         (LOOKUP)

   A     B   C
 1 DATA       DATA
 2 230010020 TRUE  230010020
 3 2300P3300		
 4 2300Q3200		
 5 2300R3400 ↑		
        =SUM(COUNTIF(A2,{"*3??","*4??","*6??","*P*","*Q*","*R*"}))=0


LOOKUPさん、ありがとうございます。でも、私には理解できませんでした。
フィルタオプションでデータを抽出するための条件式に <>*P* というようにセルに入力したいのです。

上記の場合は、「Pを含むもの以外」という意味ですが、それを、「Pを含むもの以外とRを含むもの以外、Qを含むもの以外。」という風に変えたいだけなのです。

例えば、<>*P*;*Q*;*R* とか、<>*P*,*Q*,*R* というように(いずれも私の意図しているようなデータは抽出できませんでした・・・)。


 ご質問は、ご自分のご存知でないことを求める意図でされたのでは、ないのでしょうか? 
 このようなものをお望みでしょうか?                      (LOOKUP)

   A     B    C    D    E   F    G    H
 1 DATA    DATA  DATA  DATA  DATA  DATA  DATA  DATA
 2 230010020 <>*3?? <>*4?? <>*6?? <>*P* <>*Q* <>*R*  230010020
 3 2300P3300							
 4 2300Q3200							
 5 2300R3400	

 横から失礼します。
 前の質問のフィルタオプションの続きでしょうから、ひとつのセルに入れるのではなく、
 LOOKUPさんのおっしゃるように、セルを分けてあげれば上手くいくと思いますよ。
 (川野鮎太郎)

 お言葉ですが、前者の指定で、なにか問題があるのでしょうか?
 検索条件範囲は、前者が、$B$1:$B$2。後者が、$B$1:$G$2です。          (LOOKUP)

大変申し訳ありません。「3と4と6以外。」と、「Pを含むもの以外とRを含むもの以外、Qを含むもの以外。」というのはまったく別箇の話です。あくまで例として挙げただけです。

また、「Pを含むもの以外とRを含むもの以外、Qを含むもの以外。」という条件式は、ひとつのセル内で設定したいと考えています。上のリストではPとQとRで、それぞれ別のセルに設定されているように思います。ひとつのセル内での実現を考えています。

>ご自分のご存知でないことを求める意図

というのは、私にはわかりかねましたが、つまりは「Pを含むもの以外とRを含むもの以外、Qを含むもの以外。」という条件をひとつのセル内で実現する方法が私にはわからなかったのです。ですので質問させてもらいました。すいませんでした。


すいません、説明不足でした。

検索時に、あるボタンを押すとセルに条件式が自動で入り(例えば *P*)、それに基づき、検索を実行し、条件を含むデータを抽出するというマクロを組んでいます。

ですので、セルに入る条件式を複数に設定出来ない場合(ひとつのセルに複数の条件を入れるのが無理な場合)、例えばマクロの記述内で、「Pを含むもの以外とRを含むもの以外、Qを含むもの以外。」という条件は実現出来ないものでしょうか?

それが出来れば、ボタンにそのマクロを設定し、その条件を含むものを抽出するようにしたいのですが・・・。私の考えは浅はかでしょうか・・・?


 フィルタオプションの設定の検索条件の書き方は、以下の2方法があります。

 1.空白を置き、その直下に被検索列の見出しの直下のセルを対象に数式を書いて指定する方法。
 2.見出しを書き、その直下に条件を、ANDは、並列で、ORは、直列で指定する方法。

 下の表で検索条件は、1.の方法ですと、
 対象列のデータで右から3桁目が、3でも4でも6でもないという検索条件範囲は、B1:B2。
 セル内にPもQもRも含まれていないという検索条件範囲は、C1:C2。
 2.の方法ですと、それぞれD1:F2、G1:I2ということになります。

  A     B   C  D    E   F    G   H   I   J
1 DATA          DATA  DATA  DATA  DATA  DATA  DATA  DATA
2 230010020 TRUE TRUE <>*3?? <>*4?? <>*6?? <>*P* <>*Q* <>*R* 
3 2300P2500    ↑							
4 2300Q3200   =SUM(COUNTIF(A2,{"*P*","*Q*","*R*"}))=0						
5 2300R3400 ↑								
        =SUM(COUNTIF(A2,{"*3??","*4??","*6??"}))=0            (LOOKUP)

 >「Pを含むもの以外とRを含むもの以外、Qを含むもの以外。」
 マクロの記録で、このように作成できます。						
Sub Macro1()
    Range("A1:A5").AdvancedFilter Action:=xlFilterCopy, _
    CriteriaRange:=Range("C1:C2"), CopyToRange:=Range("J1"), Unique:=False
End Sub

うまくいきました。とりあえず、一つのセル内では希望の条件は実現できないということがわかりました。出来ない前提条件の中で、他に方法を探すのも大事なことですね。
ありがとうございました。

 >一つのセル内では希望の条件は実現できないということがわかりました。
 私の掲載を再度ご確認ください。                              (LOOKUP)

LOOKUPさん、申し訳ありません。仰られているのは上記でいうと1.の方法になりますよね?私のシート設定では、数式を入力するセルの直上セルは空白ではないのです。これは厳密には二つのセルを使っているわけですよね?ただ、2.の方法で実現できたので、私としてはこれで満足です。

いろいろとお手数をおかけし、申し訳ありませんでした。ありがとうございました。


 解決済みですので、これ以上は、書きませんが、
 フィルタオプションの設定では、見出しのセルは必要ですが、
 検索条件条件の数式を入力するセルは、リスト範囲や抽出条件範囲以外の
 同じシートの任意の空白セルの直下に配置できます。                                  (LOOKUP)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.