Miaka3 Asked: 2023-11-14 23:22:14 +0800 CST2023-11-14 23:22:14 +0800 CST 2023-11-14 23:22:14 +0800 CST MS Excel - 跨多个列(标题)和行(范围)进行搜索并根据两个条件返回相应的匹配值 772 通过使用 MS Excel 公式,我想根据两个条件返回匹配值。跨多个列(标题)搜索-E1:K1并与相邻单元格匹配,并跨列B2匹配相邻电话号码单元格( ) 并返回匹配号码 ( )。C2E2:K8E2:E8 识别并匹配多个相应的标题和行,以及重复项。我想要一个允许重复记录的公式,同时提供它们的唯一标识符(行号)。目前,如果找到重复项,它将返回/重复相同的第一次出现。参见下图: excel 2 个回答 Voted Best Answer Mayukh Bhattacharya 2023-11-14T23:30:50+08:002023-11-14T23:30:50+08:00 尝试使用以下公式: • 单元格中使用的公式A2 =MAP(B2:B12,C2:C12,LAMBDA(α,φ,FILTER(E2:E8,CHOOSECOLS(E2:K8,XMATCH(α,E1:K1))=φ))) 另外,不确定,Excel Version但对于旧版本,可以使用以下公式: • 单元格中使用的公式A2 =INDEX($E$2:$K$8,MATCH(C2,INDEX($E$2:$K$8,,MATCH(B2,$E$1:$K$1,0)),0),1) 注意:上面的公式也需要填写,退出编辑模式时需要点击CTRL+ SHIFT+ENTER 对于重复的电话号码,在源数据中: • 单元格中使用的公式A2 =IFERROR(INDEX(FILTER($E$2:$E$8,CHOOSECOLS($E$2:$K$8,XMATCH(B2,$E$1:$K$1))=C2),COUNTIF(C$2:C2,C2)),"Not Found") 当源数据中存在重复项时: • 单元格中使用的公式A2 =IFERROR(INDEX($E$2:$E$8,AGGREGATE(15,6,(ROW($E$2:$E$8)-ROW($E$2)+1)/ (INDEX($E$2:$K$8,,MATCH(B2,$E$1:$K$1,0))=C2),COUNTIF(C$2:C2,C2))),"Not Found") 当存在重复时: =MAP(B2:B12,C2:C12,LAMBDA(α,φ,INDEX(FILTER(E2:E8,CHOOSECOLS(E2:K8,XMATCH(α,E1:K1))=φ),COUNTIF(D2:φ,φ)))) P.b 2023-11-14T23:38:50+08:002023-11-14T23:38:50+08:00 每次更改问题时进行编辑: =MAP(B2:B12,C2:C12,LAMBDA(b,c,IFERROR(INDEX(FILTER(E2:E8,CHOOSECOLS(E2:K8,XMATCH(b,E1:K1))=c),SUM(N(C2:c=c))),"not found"))) 或者如果Phone和 的查找值Fax可以是相同的查找值(我对此表示怀疑): =MAP(B2:B12,C2:C12,LAMBDA(b,c,IFERROR(INDEX(FILTER(E2:E8,CHOOSECOLS(E2:K8,XMATCH(b,E1:K1))=c),SUM((B2:b=b)*(C2:c=c))),"not found")))
尝试使用以下公式:
• 单元格中使用的公式A2
另外,不确定,
Excel Version
但对于旧版本,可以使用以下公式:• 单元格中使用的公式A2
注意:上面的公式也需要填写,退出编辑模式时需要点击CTRL+ SHIFT+ENTER
对于重复的电话号码,在源数据中:
• 单元格中使用的公式A2
当源数据中存在重复项时:
• 单元格中使用的公式A2
当存在重复时:
每次更改问题时进行编辑:
=MAP(B2:B12,C2:C12,LAMBDA(b,c,IFERROR(INDEX(FILTER(E2:E8,CHOOSECOLS(E2:K8,XMATCH(b,E1:K1))=c),SUM(N(C2:c=c))),"not found")))
或者如果
Phone
和 的查找值Fax
可以是相同的查找值(我对此表示怀疑):=MAP(B2:B12,C2:C12,LAMBDA(b,c,IFERROR(INDEX(FILTER(E2:E8,CHOOSECOLS(E2:K8,XMATCH(b,E1:K1))=c),SUM((B2:b=b)*(C2:c=c))),"not found")))