QUERY: ВЫБЕРИТЕ и покажите только A, где F2 - истина;порядок I, где F12 верно, предел 5, где F36 верно - PullRequest
1 голос
/ 24 июня 2019

Я пытаюсь проанализировать акции и ETF с помощью функции запроса листов Google.enter image description here

Эта функция работает.

На следующем шаге я хочу расширить основную функцию некоторыми функциями / фильтрами.

enter image description here

Вот функции / фильтры, которые я пробовал с большим и меньшим успехом ...

Функция 1: Выбрать только из DATA A -> когдаF2 - ИСТИНА

=query(WATCHLIST!A1:BC;"Select " &E2& " where " &E2& " ="&(IF(F2=TRUE;E2;""))&"")

расширенная версия

=query(WATCHLIST!A1:BC;"Select " &E2& ","&E4&",I where " &E2& " ="&(IF(F2=TRUE;E2;""))&" or where " &E4& " ="&(IF(F4=TRUE;E4;""))&"")

Feature2: выберите из КЛАССА, где C содержит DIVIDEND

=query(WATCHLIST!A1:BC;"select A,C,I where C='"&(IF(B2=TRUE;A2;""))&"'") 

Эта функция работает.

Функция 3: заказ по I desc, где F24 - ИСТИНА

Я не уверен, как решить эту проблему с помощью предложения where.В моем случае он не работает

Функция 4: предел 5, где F36 равен TRUE

Я не уверен, как решить это с помощью предложения where.В моем случае он не работает

Может быть, у кого-то есть идеи.Это было бы здорово.

1 Ответ

0 голосов
/ 24 июня 2019
=ARRAYFORMULA(QUERY(WATCHLIST!A1:BC; 
 "select "&TEXTJOIN(","; 1; FILTER(E2:E21; F2:F21=TRUE))&" 
  where C matches '"&TEXTJOIN("|"; 1; FILTER(A2:A; B2:B=TRUE))&"'"&
  IF(COUNTIF(F24:F33; TRUE)>0; "order by "&TEXTJOIN(","; 1; FILTER(E24:E33; F24:F33=TRUE))&
  IF(F36=TRUE; " limit 5"; ); ); 1))

0

...