我已经尽了一切努力,终于寻求这个社区的帮助来弄清楚这个Google表格的公式。以下是说明情况的样本表:https://docs.google.com/spreadsheets/d/1mLzsAyqtkASYMQsu8-igaUTURvhHiH-jXJN3qsr0mkU/edit?usp=sharing
每排都是去诊所的病人。患者可以在5个字段中提供电话号码(手机,家庭等)。在另一个标签(“付费电话”)上,A列中的潜在客户致电给我们的电话号码。由于这将是不断增加的患者和电话列表,因此,我想使用数组公式搜索每个患者提供的所有五个电话号码,并将其与付费潜在客户中A列的电话号码进行比较,然后返回第一个匹配电话号码的值。因此,如果患者999999的手机与“付费线索”标签中的任何电话号码匹配,那么我想返回该匹配的电话号码。
因为我不确定是否有办法做到这一点,所以我有一个替代方案可以工作,在该方案中,数组公式将返回每行E到I列的第一个非空白值。如果这是一个更容易编写的公式,那么我可以找出一种方法来安排数据,以使用不相关的查询来使其正常工作。
感谢您提供的任何帮助!
答案 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)