Функция запроса, содержащая операции с датами [DATE + X количество месяцев]

Я запрашиваю электронную таблицу Google, используя относительно простое выражение:

=QUERY(Sheet1!A1:J200, "Select A, J", 1)

Этот запрос создает список Офисов и Последние N дат в столбцах L и M — см. рисунок ниже.

Что я делаю дальше, это

  1. добавить 6 месяцев к каждой из последних N дат;
=IF(M2="","",DATE(YEAR(M2)+0,MONTH(M2)+6,DAY(M2)+0))
  1. Посмотрите, равна ли какая-либо из результирующих дат TODAY() или больше;
  2. Если ДА, поместите «ТРЕВОГА» в столбец O, который затем будет использоваться в качестве маркера в другом месте путем фильтрации строк с этим значением в качестве идентификатора.
=IF(today()>=X2,"ALARM","")

Мне было интересно, можно ли создать запрос, в котором 6 месяцев уже будут добавлены к значениям в столбце J и, возможно, результирующий список отфильтрованного значения IF [i] в ​​столбце J больше или равен TODAY(). Достигнув этого, столбец J будет содержать только Last N dates + 6 months И >= TODAY(); Все примеры, которые я проверил, похоже, работают с датами в качестве фильтров.

введите здесь описание изображения


person AlexShevyakov    schedule 02.04.2019    source источник


Ответы (2)



=QUERY({Sheet1!A1:A,
 ARRAYFORMULA(DATE(YEAR(Sheet1!J1:J), MONTH(Sheet1!J1:J)+6, DAY(Sheet1!J1:J)))}, 
 "select Col1,Col2,'ALARM' 
  where Col1 is not null 
    and Col2 >=date '"&TEXT(TODAY(), "yyyy-mm-dd")&"' 
  label Col2'ABCD', 'ALARM''alarm'
  format Col2 'dd-mmm-yyyy'", 1)

0

person player0    schedule 02.04.2019