Q&A

回答の並べ替え:
投稿新規に質問を投稿する

「テーブルから複数件取得する」の検索条件

ひ☆彡ろ ひ☆彡ろ

2020-03-12 18:00

エクセルではワイルドカードとして「*」があります。
「テーブルから複数件取得する」の検索条件で複数条件で検索したいです。絞込みしたい場合は参照するセルに条件入力して、絞込みしたくないセルには「*」を入れておくといったことをしたいのですが、CELFにはワイルドカードがないようですね。↓
https://cloud.celf.jp/celf-help/ja/texts/faq/technical/faq000179.html
何か良い方法はないでしょうか?

一旦全てのデータを取得しておいて、フィルタ機能で絞り込めば、ある程度目的のことができますが、スマートじゃないなと・・・。
よろしくお願いします。

ひ☆彡ろ ひ☆彡ろ
きびだんごさん、ご回答ありがとうございます。
「が次と一致する」を使っていたからダメだったんですね。「が次を含む」を使ったら、できました。助かりました。どうもありがとうございました。
きびだんご きびだんご
複数条件で検索したい場合、検索条件で
〇〇 [が次を含む] [=A1]
のようにしておくと A1 に何も入力していない場合は「*」と同じような結果になると思います。(入力した場合は部分一致で検索されます)
ひ☆彡ろ ひ☆彡ろ
ご回答ありがとうございます。
3条件以上の絞り込みをしたいので、条件分岐は諦めます。
それから、折角ご提案いただいたSQL文ですが、扱ったことがなくて分かりません。今から勉強して実装するには時間がかかるので、フィルタ機能を使うことにします。
ワイルドカード使えるようにして欲しい旨、SCSKにリクエストしておきます。
新日本コンピュータマネジメント株式会社 新日本コンピュータマネジメント株式会社 パートナー
メダルベストアンサー
こんにちは。

「テーブルから複数件取得する」を利用した場合に、検索条件がブランクの場合にはブランクのデータを探してしまうイメージとなりますので、
複数条件のパターン毎に、「もし○○ならば」の条件分岐で、分岐の数だけ「テーブルから複数件取得する」を指定する方法しかなさそうです。
複数条件というのが、2つであれば、××、×〇、〇×、〇〇の4パターンとなります。
条件が3つ以上の場合は現実的ではないと思われます。

SQLアクションを利用してもよろしければ、2つの方法があります。
案1
・固定のSQL文とする場合には、1つのWHERE句の記載を以下の通りとします。
("" = %simei%)
OR (
"" != %simei%
AND (氏名 = %simei%)
)
 ※入力値が""であれば1行目がTrueとなり、入力値があれば3行目がTrueとなり、4行目のANDの後次第でTrue or Falseが変わります。

案2
・動的にSQL文を生成するイメージができれば、
 検索条件の入力値に応じて、SQLのWHERE句を生成する方法となります。

ご参考になりましたでしょうか。

メールコンタクトをとる