[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『条件式に複数設定する方法』(すがやっち)
毎度すいません。またまた質問させてください。
フィルタオプションのマクロを作っています。そこで該当するデータを抽出するために、条件を入力するセルに条件式を設定しています。条件式にはいろいろあると思いますが、その中で…
<>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
上記の場合は、「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)
また、「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)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.