前回の話で、月初・月末の日付を自動取得できることは分かりました。
でもやっぱり好きな日付を指定したい時もあるんですよね〜。
日付データを活用するには、状況に合わせてそれぞれを使い分けることが大切よね。
但し、数式内に直接日付条件を埋め込むのはミスに繋がるので、必ずセル参照すること。
やり方は簡単なので覚えてしまいましょう!
QUERY関数で便利なlike(部分一致)の抽出条件をセル参照する方法については、こちらの記事で詳しく解説しているので、参考にしてみて下さい。
復習:dateの基本的な使い方
QUERY関数で日付指定する際のルールは以下の通りです。
- date '指定する日付'
- 日付として読み込むために、「'」で文字列にしてから、頭に「date」をつける
- 数式内で指定する日付形式は「YYYY-MM-DD」
- それぞれ「-」で区切る
- 日本語にすると「年-月-日」
- 例:2021-5-15
実際に人事業務で活用してみます。
例えば、以下の休職データから「4月の休職者」を抽出します。
月次の給与計算等ではよくあるシーンですよね。
4月の休職者なので、「休職開始日が2021年4月1日以前」かつ「休職終了日が2021年4月30日以降」の従業員を抜き出すと、以下のようになります。
以下の文字列をコピーして使ってみましょう。(緑文字を置き換え)
=query('シート名'!$この列から:$この列まで,"select* where 検索列<=date'2021-4-1' and 検索列>=date'2021-4-30'")
- 1営業日も勤務していない休職者を抽出
- 少なくとも4/1と4/30は休職していることが条件になる
別セルに入力した日付条件を参照する方法
成功事例
先程のケースでは、数式内に日付条件を直接埋め込みましたが、セル参照に変更すると以下のようになります。
これってlike(部分一致)でセル参照する時と同じですかね?
date'〜'の間が変な記号と指定したセルに置き換わるだけですね。
そうね!(変な記号って…)
QUERY関数の中でセル番地として認識させるために"(ダブルコーテーション)と&(アンド)で挟み込む必要があるの。
失敗事例(エラー対応)
同じなら余裕っすね!
僕もやってみよっと。
ゔぁりゅううう?!?!
できまてんでした。
あ、これは誰もがハマるやつね。
参照セルを文字列(テキスト)にすれば解決よ。
最も手っ取り早いのは、以下のようにセルを選択して「書式なしテキスト」に変更する方法です。
すると、無事にエラー解決することができました。
=query('シート名'!$この列から:$この列まで,"select* where 検索列①<=date'"&セル番地①&"' and 検索列②>=date'"&セル番地②&"'")
- QUERY関数の中でセル番地として認識させるために"(ダブルコーテーション)と&(アンド)で挟み込む
- 参照セルを文字列(テキスト)にする
- 「表示形式の詳細設定」のプルダウンから「書式なしテキスト」を選択
今回は、日付条件をセル参照する方法について解説しました。
このように、関数ではなるべく変数(抽出条件)を外(別セル)に置くことで、条件変更が楽になり、作業ミスも減ります。
QUERY関数の日付指定について詳しく知りたい方は、こちらの記事をご覧下さい。