【问题标题】:Google Sheets - Array Index Match Multiple CriteraGoogle 表格 - 数组索引匹配多个条件
【发布时间】:2021-12-05 08:52:04
【问题描述】:

工作表链接:https://docs.google.com/spreadsheets/d/1_40L74r4Y-inibZw7aplE38DDzdszrFgBMX3HU_Bsf0/edit?usp=sharing

我有一份原始数据表,其中包含问卷的答复。 从这张表中,我想根据客户和项目将答案分布在多张表中,以便我们为每个项目获得一份发货清单。

在发货清单中,我添加了 A1 作为项目编号和 A2 作为要引用的客户名称。现在我想列出原始数据表中的所有电子邮件,它们也将 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")

金额: =FILTER(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))); ",$";))

问题: 现在我特别意识到电子邮件解决方案不适用于数组案例并挑选出多个结果。

有人知道解决办法吗?

谢谢!

【问题讨论】:

    标签: google-sheets array-formulas multiple-results index-match


    【解决方案1】:

    建议

    或许你可以试试这个方法:

    ==UPDATE==

    对于按行分隔的 E 列上的 Email

    =QUERY(Product_Pick_RAW!W2:Y,"SELECT W where Y='"&$A$2&"' AND X='"&$A$1&"'")
    

    ==UPDATE==

    对于按行分隔的 H 列上的 Amount Prdt

    =QUERY(Product_Pick_RAW!A2:Y, "SELECT A WHERE Y = '"&$A$2&"' AND X = '"&A1&"'")
    

    ==UPDATE==

    对于I 列上的Products,您可以通过在电子表格中添加以下脚本作为bound script 来尝试此自定义函数FINDLINKS

    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;
    }
    

    然后您可以像这样在I 列上使用FINDLINKS 自定义函数:

    =ARRAYFORMULA(TRIM(FINDLINKS(Product_Pick_RAW!B2:Y9;$A$1;$A$2)))
    

    样本结果:

    【讨论】:

    • 杰伊。 G:效果很好。是否有可能让每个人都在自己的行中?那么第一封电子邮件,带有相关的产品数量和产品链接,然后是下一行的第二封电子邮件?
    • 感谢您的评论。至于电子邮件,与产品数量相关,可以单独使用查询功能(请参阅我的更新答案)。但是,对于每个产品计数(Amount Prdt)和电子邮件上的每个产品链接,我只能想到使用 arrayformula 查询来获取每个产品链接,但不幸的是,进一步研究不支持它see .
    • 您是否愿意使用应用程序脚本为产品链接使用自定义公式?
    • 感谢您的更新。我实施了这些公式,它们效果很好。我安装了 Apps 脚本工具并使用此公式创建了一个新项目。我还有两个问题:1)运行脚本时,我收到此错误:TypeError: Cannot read property 'length' of undefined FINDLINKS @ Product Links Script.gs:3
    • 2) 我不确定我是否已将脚本正确连接到工作表。有没有办法确保脚本现在绑定到工作表?
    猜你喜欢
    • 2020-10-27
    • 2012-08-28
    • 2019-12-28
    • 2018-09-04
    • 2019-10-22
    • 2021-01-08
    • 2016-09-24
    • 2019-04-04
    • 2017-01-08
    相关资源
    最近更新 更多