使用多列数据来匹配并返回Google表格中的值

时间:2019-01-23 11:50:00

标签: google-sheets google-sheets-query

我已经尽了一切努力,终于寻求这个社区的帮助来弄清楚这个Google表格的公式。以下是说明情况的样本表:https://docs.google.com/spreadsheets/d/1mLzsAyqtkASYMQsu8-igaUTURvhHiH-jXJN3qsr0mkU/edit?usp=sharing

每排都是去诊所的病人。患者可以在5个字段中提供电话号码(手机,家庭等)。在另一个标签(“付费电话”)上,A列中的潜在客户致电给我们的电话号码。由于这将是不断增加的患者和电话列表,因此,我想使用数组公式搜索每个患者提供的所有五个电话号码,并将其与付费潜在客户中A列的电话号码进行比较,然后返回第一个匹配电话号码的值。因此,如果患者999999的手机与“付费线索”标签中的任何电话号码匹配,那么我想返回该匹配的电话号码。

因为我不确定是否有办法做到这一点,所以我有一个替代方案可以工作,在该方案中,数组公式将返回每行E到I列的第一个非空白值。如果这是一个更容易编写的公式,那么我可以找出一种方法来安排数据,以使用不相关的查询来使其正常工作。

感谢您提供的任何帮助!

2 个答案:

答案 0 :(得分:0)

您可以使用两个公式:

此人将特定患者的电话号码与您在PaidCalls工作表中拥有的号码列表进行比较。

=join(char(10),FILTER(E2:I2,ARRAYFORMULA(ISNUMBER(MATCH(E2:I2,PaidCalls!A2:A,0)))))

另一个简单地遍历每个患者的电话号码,然后选择第一个非空白的电话号码。非常简单。这是一系列嵌套条件,都遵循以下模式:

如果该单元格不是空白,请使用其值。如果为空白,请转到下一个单元格。

=IF(not(isblank(E2)),E2,IF(not(isblank(F2)), F2, IF(not(isblank(G2)), G2, IF(not(isblank(H2)),H2, IF(not(isblank(I2)),I2)))))

PS:请注意,我在实现中使用名称“ PaidCalls”而不是“ Paid Calls”。其他所有内容都根据工作表的结构运行。我还已经将其复制到您共享的Google表格中。

如果您想进一步解释,尤其是第一个公式,请告诉我。

答案 1 :(得分:0)

  

将返回此行中与“付费电话”标签中A列中的任何电话号码匹配的电话号码的公式。

=JOIN(CHAR(10),unique(QUERY(ArrayFormula(IFERROR(VLOOKUP(
 {E5;F5;G5;H5;I5},PaidCalls!A$2:A,1,0),)),
 "select Col1 where Col1 is not null", 0)))

  

将返回下面每一行的E到I列中第一个非空白值的公式

=INDEX(QUERY(transpose(E5:I5),"select Col1 where Col1 is not null",0),1,1)