QUERY式の検索条件を可変にして利用者選択を可能にする

 概要:QUERY式のWHERE句を、利用者が選択できるようにする。
 
完成したQUERY式
=QUERY(qData!A10:AV8000,"SELECT A," & B37 & " WHERE 2=2 " & D3 & D4 & D5 & D6 & D7 & D8 & D9,1)
 
説明: WHERE 2=2  ⇒ダミーで記述。 選択する項目を AND  XX Like '%AAA%' とするため
 
利用者の選択

 ↑ 選択されなかった項目は、 AND,,,句が空白のため、 QUERY式では無視される。
 
AND句 数式
=if(B5<>"","AND AS Like '%" & B5 & "%'","")
単語の中間一致したいので、前後に'%'をつける
 
検索テク
セル内に改行が入っていると、 検索がセル内の1行目だけになってしまう。
それを回避するため、検索セルから CHAR(10) を削除した列を作る
=substitute(M11,CHAR(10),"")
 

QUERY式の表示列を可変にして利用者選択を可能にする

 趣旨:横に広い列を持つ表から、表示する列を選択できるようにする。ポイントは、SELECT句に B,C,F,... という列を、SpreadSheetの数式でつくることで実現する。
表示したい列を、プルダウンで選択する

 

選択列 は =CONCATENATE で連結

 

連結文字の最後のカンマをトル

 

列一覧を QUERY式から参照する
=QUERY(qData!A10:AR8000,"SELECT A," & B31 & "

※ QUERY式は、数式を使うセルの数が少ないので、
レスポンスが良いように思うのは、気のせい かも。