Google 表格提供了將引數傳遞給 lambda 的功能,如下所示:
=LAMBDA(x, y, x y)(100, 200)
我正在考慮從另一個作業表中獲取 2 列,使用 QUERY 對其進行過濾,然后將這 2 列傳遞到 LAMBDA。基本上,這兩列是我想一次性拆分的鍵和 CSV 文本。
=lambda(a, b, split(b, ","))(query('Alias Key Raw'!A1:B, "select * where A starts with 'X'"))
這給出了以下ERROR Wrong number of arguments to call following LAMBDA function. Expected 2 arguments, but got 1 arguments.. 鑒于 QUERY 提供了 2 列實際值,我認為這是可能的。
=byrow(query('Alias Key Raw'!A1:B, "select * where A starts with 'X'"), lambda(row, split(row, ",")))
這給了我只有A列。否則沒有錯誤。出現的所有 B 列都被忽略
- 我試過使用
BYCOL,BYROW等,很多錯誤是ERROR Wrong number of arguments to call following LAMBDA function. Expected 2 arguments, but got 1 arguments.
資料
輸入到 lambda
| 鑰匙 | 血統 |
|---|---|
| 銅 | B.1.1.529.5.1.26 |
| 簡歷 | B.1.1.529.2.75.3.1.1.3 |
| XA | B.1.1.7,B.1.177 |
| XB | B.1.634,B.1.631 |
| XC | AY.29,B.1.1.7 |
| XAZ | BA.2.5,BA.5,BA.2.5 |
| XBC | BA.2*,B.1.617.2*,BA.2*,B.1.617.2* |
預期的
來自 lambda 的輸出
| 鑰匙 | 血統 | |||
|---|---|---|---|---|
| XA | B.1.1.7 | B.1.177 | ||
| XB | B.1.634 | B.1.631 | ||
| XC | 29 年 | B.1.1.7 | ||
| XAZ | BA.2.5 | BA.5 | BA.2.5 | |
| XBC | BA.2* | B.1.617.2* | BA.2* | B.1.617.2* |
注意:CSV 單元格中可以有任意數量的譜系
uj5u.com熱心網友回復:
更新
=ArrayFormula(
LAMBDA(a, {QUERY({a},"Select Col1"),SPLIT(QUERY({a},"Select Col2"),",")})
(QUERY('Alias Key Raw'!A1:B, "select * where A starts with 'X'",1)))

解釋:
使用陣列{}回傳:
Col1: {QUERY({a},"Select Col1"),...}
Col2:{...,SPLIT(QUERY({a},"Select Col2"),",")}
在呼叫中Query QUERY('Alias Key Raw'!A1:B, "select * where A starts with 'X'",1)找到的Lambda名為a
使用的公式幫助
ARRAYFORMULA- LAMBDA- QUERY-SPLIT
uj5u.com熱心網友回復:
或許值得指出的是,可以使用既不使用 QUERY 也不使用 LAMBDA 的更緊湊的公式回傳預期資料:
=filter({A1:A,split(B1:B,",")},regexmatch(A1:A,"^X"))
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/524625.html
