web-dev-qa-db-ja.com

現在の日付に基づいて列をクエリする

現在の日付に基づいて列を照会しようとしています。

例:

今日がその月の1日である場合、次のことを行う必要があります。

=QUERY(table,"SELECT A WHERE B CONTAINS 'this text'")

今日が月の12日である場合、次のことを行う必要があります。

=QUERY(table,"SELECT A WHERE M CONTAINS 'this text'")

今日が月の30日である場合、

=QUERY(table,"SELECT A WHERE AE CONTAINS 'this text'")

これどうやってするの?

+1を現在の日付に変換し、対応する文字に変換してクエリで使用します。しかし、実際にそれを行う方法はわかりません。

2
Eldin Turkic

次のQUERY式を使用できます。

今日がその月の1日である場合:

_=IF(DAY(EOMONTH(TODAY(),-1)+1)=1,QUERY(table,"SELECT A WHERE B CONTAINS 'this text'")," ")
_

今日が月の12日である場合:

_=IF(DAY(EOMONTH(TODAY(),-1)+12)=12,QUERY(table,"SELECT A WHERE M CONTAINS 'this text'")," ")
_

今日が月の30日である場合:

_=IF(DAY(EOMONTH(TODAY(),-1)+30)=30,QUERY(table,"SELECT A WHERE AE CONTAINS 'this text'")," ")
_

数式のしくみ:

  • TODAY() =今日の日付
  • EOMONTH(TODAY(),-1) =先月の最終日
  • DAY(EOMONTH(TODAY(),-1)+1) =今月の最初の日(先月の最終日+ 1日)

したがって、今月の12日目DAY(EOMONTH(TODAY(),-1)+12)


PROヒント

  1. 今月の最終日(28日または29日または30日または31日)は常に=DAY(EOMONTH(TODAY(),0)です
  2. IF関数の日付をクエリ外のセルに配置すると、セル_A1_ _1_または_12_または_25_などの数値を使用して、クエリを次のように変更できます。
=IF(DAY(EOMONTH(TODAY(),-1)+A1)=A1,QUERY(table,"SELECT A WHERE M CONTAINS 'this text'")," ")

使用される関数:

0
marikamitsos