我有两张表,第一列是两列地点,第三列是这些地点之间的里程数:
在另一张表上,我有一个包含 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'
AA
AE
A
E
'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(…)
。