跨多列的索引匹配

跨多列的索引匹配

我有两张表,第一列是两列地点,第三列是这些地点之间的里程数:

里程表;即位置到位置

在另一张表上,我有一个包含 Sheet1 列中地点的下拉列表A,另一列中还有一个包含 Sheet1 列中地点的下拉列表B,然后匹配索引的第三列从 Sheet 1 列中查找里程数C

差旅费报销单;即差旅表

在我的索引匹配公式中,我希望能够查找位置,无论它们位于第一张表的哪一列。

例如,我希望它找到 Office 与 Apple Blossom 以及 Apple Blossom 与 Office 的匹配项。

现在我使用这个公式:

=ArrayFormula(iferror(ArrayFormula(INDEX('Copy of Location to Location'!C:C, MATCH('Travel Form 17-18'!B8&'Travel Form 17-18'!C8,'Copy of Location to Location'!A:A&'Copy of Location to Location'!B:B,0))),""))

但这只能从 Office 查找 Apple Blossom,而不能从 Apple Blossom 查找。是否可以添加另一个 Match 公式来查找这两列,而无需在 Sheet 1 的两列中都输入数据?

答案1

火箭科学的第一条规则:简单的事情比复杂的事情更容易。

我在一张工作表上重现了您的问题,因此我不必到处使用工作表名称。列 A-C对应 于 Sheet1(又名) 上的列A-并且列-对应于 Sheet2(又名)上的列 - 。我将公式(您在 中使用的公式)简化为C'Copy of Location to Location'AAAEAE'Travel Form 17-18'Sheet2!E8

=IFERROR(INDEX(C:C, MATCH(AB8&AC8, A:A&B:B, 0)), "")

我把它放到了我的 中AE8。当杂乱的东西被清除后,理解起来就容易多了。

而且逻辑并不复杂。如果FROM&TO不在“Location to Location”表中,我们要搜索TO&FROM

=IFERROR(INDEX(C:C, IFERROR(MATCH(AB8&AC8, A:A&B:B, 0), MATCH(AC8&AB8, A:A&B:B, 0))), "")

AE8这是我在此屏幕截图中的单元格中的公式:

      组合距离表和行程表

我们显然使用的是不同版本的 Excel。我无法ArrayFormula(…)在我的版本(Excel 2013)中说出来;我只是在公式后输入++Ctrl以 使其成为数组公式。所以我不知道这到底是如何工作的(你确定你需要在公式中使用两次吗?)。但这是我的解决方案(来自上面)翻译回你的工作表和列名称:ShiftEnterArrayFormula(…)

=IFERROR(INDEX(C:C, IFERROR(MATCH('Travel Form 17-18'!B8&'Travel Form 17-18'!C8, 'Copy of Location to Location'!A:A&'Copy of Location to Location'!B:B, 0), MATCH('Travel Form 17-18'!C8&'Travel Form 17-18'!B8, 'Copy of Location to Location'!A:A&'Copy of Location to Location'!B:B, 0))), "")

我会让你弄清楚你需要在哪里说ArrayFormula(…)

相关内容