查询:选择并仅显示A,其中F2为真;否则为0。在F12为真的情况下按I排序,在F36为真的情况下按5排序

时间:2019-06-24 09:36:14

标签: google-sheets google-sheets-formula array-formulas google-sheets-query gs-vlookup

我正在尝试通过Google表格查询功能分析股票和ETF。 enter image description here

此功能正在运行。

下一步,我想通过一些功能/过滤器扩展主要功能。

enter image description here

以下是我尝试或多或少获得成功的功能/过滤器...

功能1:当F2为TRUE时,仅从数据中选择A->

=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;""))&"")

功能2:从CLASS中选择,其中C包含DIVIDEND

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

此功能正在运行。

功能3:在F24为TRUE的情况下,按I desc排序

我不确定如何使用where子句解决它。就我而言,它没有运行

特征4:F36为TRUE的极限5

我不确定如何使用where子句解决它。就我而言,它没有运行

也许有人有一些想法。太好了。

1 个答案:

答案 0 :(得分:0)

=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