Cat*_*lyx 3 lambda select filter google-sheets google-query-language
我有一个 Google 表格,其命名范围超出了 AZ 列。名称范围有标题行。我想使用该QUERY函数通过标题标签选择列。
我的公式是这样的:
=QUERY(NamedRange,"SELECT AZ, AX, BM where BB='student' ORDER BY BM DESC",1)
Run Code Online (Sandbox Code Playgroud)
StackOverflow 上其他问题的答案(例如此处接受的问题)尚未奏效。在 Google 支持页面上找到的另一个答案不适用于 Z 以外的列。
如何使用该QUERY函数并通过标题标签选择 AA 列之外的列?
期望的输出/样本数据
可以在此处找到具有所需输出的示例电子表格。
您可以转置它,标题行变成一列。然后:
=TRANSPOSE(QUERY(TRANSPOSE(A1:C), "where Col1 matches 'bb header|student'", ))
Run Code Online (Sandbox Code Playgroud)
其中 A1:C 是您的命名范围(包括标题行)
=QUERY({AI1:AK6}, "select Col2,Col3 where Col1='Jones'", 1)
Run Code Online (Sandbox Code Playgroud)
动态地:
=LAMBDA(p, t, s, QUERY({AI1:AK6},
"select Col"&t&",Col"&s&"
where Col"&p&"='Jones'
order by Col"&t&" desc", 1))
(MATCH("principal", AI1:AK1, ),
MATCH("teacher", AI1:AK1, ),
MATCH("student", AI1:AK1, ))
Run Code Online (Sandbox Code Playgroud)
LAMBDA是一个常规 GS 函数,允许用自定义字符串替换任何类型的范围。简单 lambda 的通用示例:=LAMBDA(x, x+5)(A1)这是旧术语:=A1+5因此您可以将其理解为x的占位符A1。再举一个例子:=IF((A1+1)>(B1+1), B1+1-A1+200, B1+1*A1+20)包含大量重复的单元格引用,因此我们可以像这样重构它:=LAMBDA(a, b, IF((a+1)>b, b-a+200, b*a+20))(A1, B1+1)这对于更高级的公式堆叠特别方便,我们可以将其包装在 Lambda 中以缩短它并使其更清晰,而不是多次重复整个 fx
你可以拥有任意数量的 LAMBDA:
在这里,只是为了好玩,再举一个例子......用 lambda:
没有 lambda:pastebin.com/raw/BREgC9La
(来自:stackoverflow.com/a/74380299/5632629)
| 归档时间: |
|
| 查看次数: |
2611 次 |
| 最近记录: |