Sorting 使用Google Sheets中的单个公式从一个范围创建动态排序和筛选列表

Sorting 使用Google Sheets中的单个公式从一个范围创建动态排序和筛选列表,sorting,google-sheets,filtering,array-formulas,google-sheets-query,Sorting,Google Sheets,Filtering,Array Formulas,Google Sheets Query,我试着做一些类似于这个问题的事情: 我有一个包含两列的输入范围,作为输出,我希望使用一个公式从输入范围创建一个动态排序和筛选的列表 有关所需结果,请参阅本文档: 我尝试了公式:=SORT(FILTER(B11:C100,B11:B100=or(I11,I12,I13,I14)),2,0),但它不起作用。我做错了什么?非常感谢您的帮助。试试: =ARRAYFORMULA(QUERY(B11:C, "where lower(B) matches '"&TEXTJOIN("|", 1, L

我试着做一些类似于这个问题的事情:

我有一个包含两列的输入范围,作为输出,我希望使用一个公式从输入范围创建一个动态排序和筛选的列表

有关所需结果,请参阅本文档:

我尝试了公式:
=SORT(FILTER(B11:C100,B11:B100=or(I11,I12,I13,I14)),2,0)
,但它不起作用。我做错了什么?非常感谢您的帮助。

试试:

=ARRAYFORMULA(QUERY(B11:C, 
 "where lower(B) matches '"&TEXTJOIN("|", 1, LOWER(I11:I))&"' 
  order by C desc", 0))

您可以修改或(、、、、)如下所示:

=SORT(
       FILTER(B11:C100, 
                ((B11:B100 = I11)*1+(B11:B100 = I12)*1+(B11:B100 = I13)*1+(B11:B100 = I14)*1)>0
       )
       , 2, 0
     )

感谢您提供了优雅的解决方案@player0-我看到查询功能非常强大。我已经用您的解决方案更新了Google工作表。问题:如果我只想呈现第一列(在我们的示例中是带有字符名的列,而不是带有频率的列),那么需要对公式进行哪些修改?请尝试:
=ARRAYFORMULA(查询(B11:B,“where lower(B)matches'”&TEXTJOIN(|),1,lower(I11:I))&“,0))
sure:
=ARRAYFORMULA(查询(B11:C,“选择B,其中较低的(B)匹配)”&TEXTJOIN(“|”,1,较低的(I11:I))&“按C描述排序”,0))
尝试:谢谢!请使用查询查看@player0的解决方案