Google 工作表 - 数组索引匹配多个条件
Google Sheets - Array Index Match Multiple Critera
Link 到 Sheet:https://docs.google.com/spreadsheets/d/1_40L74r4Y-inibZw7aplE38DDzdszrFgBMX3HU_Bsf0/edit?usp=sharing
我有一份原始数据 sheet,其中包含一份调查问卷的回复。
根据这个 sheet,我想根据客户和项目将答案分散到多个 sheet 中,以便我们为每个项目获得一份发货清单。
在发货清单中,我添加了 A1 作为项目编号和 A2 作为要引用的客户名称。现在我想列出来自原始数据 sheet 的所有电子邮件,它们也匹配 A1 和 A2 作为项目和客户。我还需要获取“Amount Prdt”(Product_Pick_RAW!A) 和“Products”(Product_Pick_RAW!B:V)。所有产品信息应以逗号作为分隔符连接在一起。
现状:
我挑选了电子邮件:
=IFERROR(INDEX(Product_Pick_RAW!$A2:$AC; MATCH($A$1;Product_Pick_RAW!X:X;0);23);"FEHLER")
项目金额:
=过滤器(Product_Pick_RAW!A:A;Product_Pick_RAW!Y:Y=TRIM($A$2);Product_Pick_RAW!X:X=TRIM( $A$1);Product_Pick_RAW!W:W=TRIM(E4))
产品:
=INDEX(REGEXREPLACE(TRIM(FLATTEN(QUERY(TRANSPOSE(FILTER(IF(Product_Pick_RAW!B:U="";;Product_Pick_RAW!B:U&","));Product_Pick_RAW!Y:Y=$A$2;Product_Pick_RAW!X:X=$A$1;Product_Pick_RAW!W:W=E4));;9^9))); " ,$";))
问题:
现在我特别意识到电子邮件解决方案这不适用于数组情况并选择多个结果。
有人知道这个的解决方案吗?
谢谢!
建议
或许你可以试试这个方法:
==更新==
对于 E
列上的 Email
由行分隔:
=QUERY(Product_Pick_RAW!W2:Y,"SELECT W where Y='"&$A&"' AND X='"&$A&"'")
==更新==
对于 H
列上的 Amount Prdt
由行分隔:
=QUERY(Product_Pick_RAW!A2:Y, "SELECT A WHERE Y = '"&$A&"' AND X = '"&A1&"'")
==更新==
For Products
on I
column, you can try this custom function FINDLINKS
by adding this script below as a bound script on your spreadsheet:
function FINDLINKS(range, project, client) {
var container = [];
for(x=0; x<range.length; x++){
if(range[x][22].includes(project) & range[x][23].includes(client)){
container.push([range[x][0]+"\n"+
range[x][1]+"\n"+
range[x][2]+"\n"+
range[x][3]+"\n"+
range[x][4]+"\n"+
range[x][5]+"\n"+
range[x][6]+"\n"+
range[x][7]+"\n"+
range[x][8]+"\n"+
range[x][9]+"\n"+
range[x][10]+"\n"+
range[x][11]+"\n"+
range[x][12]+"\n"+
range[x][13]+"\n"+
range[x][14]+"\n"+
range[x][15]+"\n"+
range[x][16]+"\n"+
range[x][17]+"\n"+
range[x][18]+"\n"+
range[x][19]]);
}
}
return container;
}
Then you can use FINDLINKS
custom function on column I
like this:
=ARRAYFORMULA(TRIM(FINDLINKS(Product_Pick_RAW!B2:Y9;$A;$A)))
示例结果:
Link 到 Sheet:https://docs.google.com/spreadsheets/d/1_40L74r4Y-inibZw7aplE38DDzdszrFgBMX3HU_Bsf0/edit?usp=sharing
我有一份原始数据 sheet,其中包含一份调查问卷的回复。 根据这个 sheet,我想根据客户和项目将答案分散到多个 sheet 中,以便我们为每个项目获得一份发货清单。
在发货清单中,我添加了 A1 作为项目编号和 A2 作为要引用的客户名称。现在我想列出来自原始数据 sheet 的所有电子邮件,它们也匹配 A1 和 A2 作为项目和客户。我还需要获取“Amount Prdt”(Product_Pick_RAW!A) 和“Products”(Product_Pick_RAW!B:V)。所有产品信息应以逗号作为分隔符连接在一起。
现状: 我挑选了电子邮件: =IFERROR(INDEX(Product_Pick_RAW!$A2:$AC; MATCH($A$1;Product_Pick_RAW!X:X;0);23);"FEHLER")
项目金额: =过滤器(Product_Pick_RAW!A:A;Product_Pick_RAW!Y:Y=TRIM($A$2);Product_Pick_RAW!X:X=TRIM( $A$1);Product_Pick_RAW!W:W=TRIM(E4))
产品: =INDEX(REGEXREPLACE(TRIM(FLATTEN(QUERY(TRANSPOSE(FILTER(IF(Product_Pick_RAW!B:U="";;Product_Pick_RAW!B:U&","));Product_Pick_RAW!Y:Y=$A$2;Product_Pick_RAW!X:X=$A$1;Product_Pick_RAW!W:W=E4));;9^9))); " ,$";))
问题: 现在我特别意识到电子邮件解决方案这不适用于数组情况并选择多个结果。
有人知道这个的解决方案吗?
谢谢!
建议
或许你可以试试这个方法:
==更新==
对于 E
列上的 Email
由行分隔:
=QUERY(Product_Pick_RAW!W2:Y,"SELECT W where Y='"&$A&"' AND X='"&$A&"'")
==更新==
对于 H
列上的 Amount Prdt
由行分隔:
=QUERY(Product_Pick_RAW!A2:Y, "SELECT A WHERE Y = '"&$A&"' AND X = '"&A1&"'")
==更新==
For
Products
onI
column, you can try this custom functionFINDLINKS
by adding this script below as a bound script on your spreadsheet:
function FINDLINKS(range, project, client) {
var container = [];
for(x=0; x<range.length; x++){
if(range[x][22].includes(project) & range[x][23].includes(client)){
container.push([range[x][0]+"\n"+
range[x][1]+"\n"+
range[x][2]+"\n"+
range[x][3]+"\n"+
range[x][4]+"\n"+
range[x][5]+"\n"+
range[x][6]+"\n"+
range[x][7]+"\n"+
range[x][8]+"\n"+
range[x][9]+"\n"+
range[x][10]+"\n"+
range[x][11]+"\n"+
range[x][12]+"\n"+
range[x][13]+"\n"+
range[x][14]+"\n"+
range[x][15]+"\n"+
range[x][16]+"\n"+
range[x][17]+"\n"+
range[x][18]+"\n"+
range[x][19]]);
}
}
return container;
}
Then you can use
FINDLINKS
custom function on columnI
like this:
=ARRAYFORMULA(TRIM(FINDLINKS(Product_Pick_RAW!B2:Y9;$A;$A)))