在 Excel 数组公式结果中查找匹配项

Find matches within an Excel array formula result

我正在寻找一种方法来进行某种 nested/indirect 查找。

  1. 我有一个 table 两列,A 列中有汽车型号(例如 Mustang),B 列中有汽车品牌(例如福特)
  2. 在 F 列中,我有一个车型列表。这可以是A列中列出的模型,但并非所有A列中的模型都必须在F
  3. 中列出
  4. D 列包含一些汽车品牌。

对于 D 列中的每个汽车品牌,我需要确定是否存在 F 列中存在的模型。因此,对于 D 中的汽车品牌,我想在 B 列中查找相应的保养模型,并且接下来,我想在 F 列中查找这些发现的护理模型的出现情况。

我成功地使用数组公式进行了第一次查找,但是我仍然卡在如何确定结果数组和 F 中的范围是否具有公共元素(或非空交集)。

任何帮助将不胜感激!

henkgijsbert

A(型号) B(品牌) C(空) D(=品牌 2) E(=找到) F(=carlist)

克尔维特 雪佛兰 道奇 (1)? 克尔维特
科迈罗 雪佛兰 雪佛兰 (2)?野马
蒙迪欧 福特 科迈罗
野马 福特
挑战者闪避
复仇者 闪避

在上面的示例中,(1) 的结果应该是 N,因为品牌 D1 ("Dodge") 的 F 列中没有任何型号。在 (2) 上,结果应该是 Y,因为品牌 D2 ("Chevrolet") 的 F 列中有模型(甚至 2 个)。

我有以下数组公式获取 D1 中 Make "Dodge" 的所有模型:

{=IFERROR(INDEX($A:$A; SMALL(IF(D1=$B:$B; ROW($A:$A);""); ROW()));"")}

如何比较此数组公式的结果与 F 列中的匹配项?

可以在E3中输入以下内容,往下拉。使用 Ctrl + Shift+ Enter 输入公式,即作为数组公式。

 =IF(SUMPRODUCT(--ISNUMBER(MATCH($F:$F,IF(ISNUMBER(SEARCH($D3,$B:$B)),$A:$A,""),0)))>0,"Y","N")

数据:

如果您不想在 G 列中查找品牌,可以使用此公式:

=IF(0<SUM(MMULT(--(TRANSPOSE($A:$A)=$F:$F),--($B:$B=$D2))),"Y","N")

但我建议在 G 中创建一个 Make2 列,这样以后会更容易理解。