Excel-返回在特定行中包含三个特定值的列

时间:2018-09-20 14:48:11

标签: excel

我现在正在拔头发,试图在没有VBA的情况下实现这一目标。 我不需要任何VBA,而且我知道只需两行以上的VBA代码即可轻松实现。

这是我正在使用的表类型的简化模板。

enter image description here

目标是:使用一个公式返回匹配三个指定值的列。 Im搜索的值将在工作表所在的位置上。 如果您有一个可以实现目标的值,只需将它们作为公式中的值即可。

最诚挚的问候,如果有人帮助我恢复精神健康,请先感谢。

1 个答案:

答案 0 :(得分:0)

假设这样的数据设置:

enter image description here

此公式位于单元格F1中:

=SUMPRODUCT((B1:C1&B2:C2&B3:C3=F2&F3&F4)*(COLUMN(B1:C1)))

调整范围以适合您的实际数据

说明:

  • 它将列的行的值合并为一个字符串(因此,在此示例中,它将为{“ KPI ADATEDATA TYPE”,“ KPI BDATEDATA TYPE”})
  • 然后将这些结果与您要查找的组合字符串进行比较:“ KPI ADATEDATA TYPE”将结果转换为TRUE / FALSE,因此您最终得到{TRUE,FALSE}(因为第一个组合的字符串与KPI A匹配)
  • 然后获取结果的所有可能的列号:在这种情况下,对于B和C列为{2,3}
  • 然后乘法将TRUE / FALSE分别转换为1和0,因此您最终得到{1,0} * {2,3}
  • 因为大概只有一个匹配项,所以导致正确的列号是唯一要乘以1的值,因此结果为{2,0}
  • 然后,SUMPRODUCT对结果求和,并且由于只有一个非零数字,所以它必须是列索引。