使用 INDEX MATCH 查找从两个表之间的最大值中选择
Using INDEX MATCH to find to pick from highest value between two tables
我使用此 sheet 根据运输时间表的硬输入来跟踪不同事物的位置。我正在使用三个 tables:
- 所有材料的清单(重要的三列:
标识符 1、标识符 2 和位置)
- 从工厂 A 发货(标识符 1、标识符 2、发货日期)
从工厂 B 发货(与工厂 A table 相同)。所有材料都由两个单独的列标识。
____A_______B_______C_______D_____E_______F_______G_________H____I______J________K______
___ID#1_|_ID#2_|_Location_|____|_ID#1_|_ID#2_|_Ship Date_|____|ID#1_|_ID#2_|_Ship Date_|
1___A___|__1___|__________|____|__A___|___2__|_9/17/15___|____|_B___|__2___|_9/15/15___|
2___A___|__2___|__________|____|__A___|___1__|_9/18/15___|____|_B___|__2___|_9/18/15___|
3___A___|__3___|__________|____|__B___|___2__|_9/18/15___|____|_A___|__1___|_9/19/15___|
4___B___|__1___|__________|____|__C___|___1__|_9/19/15___|____|_B___|__1___|_9/20/15___|
5___B___|__2___|__________|____|__A___|___3__|_9/21/15___|____|_C___|__1___|_9/22/15___|
6___C___|__1___|__________|____|__A___|___1__|_9/22/15___|____|_C___|__2___|_9/22/15___|
7___C___|__2___|__________|____|______|______|___________|____|_____|______|___________|
来回运费很多。因此,我最初的计划是 INDEX/MATCH 查找两次运输 table 之间的最高日期值,并且 return 到位置列作为 'Plant A' (如果最近的日期在工厂 B table) 或 'Plant B'(如果最近的日期在工厂 A table)。
我完全想不通。我最后只添加了两列,从每个 table 中查找发货日期,然后使用位置列,如果它大于那个 "Plant A" 如果为假 "Plant B" 和隐藏了两列(该公式看起来像 =index(table2,(Match(a1&B1,E:E&F:F,0)),1)...)但后来我意识到它正在拉最旧的从后两个 table 开始,而不是从最新的开始……让它变得一文不值。
所以,我想我的第一个问题是:如何使用 INDEX/MATCH 函数来查找最大值?
我的第二个问题是:有什么办法可以按照我最初的想法去做吗(我尝试使用嵌套在 If 函数中的多个 index/match 函数,但它非常混乱并且无法工作)或者我应该让我的两个隐藏列继续设置?
如果我对场景的理解正确,这个公式应该可以做到。直接输入C2单元格,向下复制:
=IF(MAX(INDEX(($E:$E=$A2)*($F:$F=$B2)*$G:$G,,1))>MAX(INDEX(($I:$I=$A2)*($J:$J=$B2)*$K:$K,,1)),"Plant B","Plant A")
注意:您需要将 22
的引用调整为适合您的表格的任何行。
我使用此 sheet 根据运输时间表的硬输入来跟踪不同事物的位置。我正在使用三个 tables:
- 所有材料的清单(重要的三列: 标识符 1、标识符 2 和位置)
- 从工厂 A 发货(标识符 1、标识符 2、发货日期)
从工厂 B 发货(与工厂 A table 相同)。所有材料都由两个单独的列标识。
____A_______B_______C_______D_____E_______F_______G_________H____I______J________K______ ___ID#1_|_ID#2_|_Location_|____|_ID#1_|_ID#2_|_Ship Date_|____|ID#1_|_ID#2_|_Ship Date_| 1___A___|__1___|__________|____|__A___|___2__|_9/17/15___|____|_B___|__2___|_9/15/15___| 2___A___|__2___|__________|____|__A___|___1__|_9/18/15___|____|_B___|__2___|_9/18/15___| 3___A___|__3___|__________|____|__B___|___2__|_9/18/15___|____|_A___|__1___|_9/19/15___| 4___B___|__1___|__________|____|__C___|___1__|_9/19/15___|____|_B___|__1___|_9/20/15___| 5___B___|__2___|__________|____|__A___|___3__|_9/21/15___|____|_C___|__1___|_9/22/15___| 6___C___|__1___|__________|____|__A___|___1__|_9/22/15___|____|_C___|__2___|_9/22/15___| 7___C___|__2___|__________|____|______|______|___________|____|_____|______|___________|
来回运费很多。因此,我最初的计划是 INDEX/MATCH 查找两次运输 table 之间的最高日期值,并且 return 到位置列作为 'Plant A' (如果最近的日期在工厂 B table) 或 'Plant B'(如果最近的日期在工厂 A table)。
我完全想不通。我最后只添加了两列,从每个 table 中查找发货日期,然后使用位置列,如果它大于那个 "Plant A" 如果为假 "Plant B" 和隐藏了两列(该公式看起来像 =index(table2,(Match(a1&B1,E:E&F:F,0)),1)...)但后来我意识到它正在拉最旧的从后两个 table 开始,而不是从最新的开始……让它变得一文不值。
所以,我想我的第一个问题是:如何使用 INDEX/MATCH 函数来查找最大值?
我的第二个问题是:有什么办法可以按照我最初的想法去做吗(我尝试使用嵌套在 If 函数中的多个 index/match 函数,但它非常混乱并且无法工作)或者我应该让我的两个隐藏列继续设置?
如果我对场景的理解正确,这个公式应该可以做到。直接输入C2单元格,向下复制:
=IF(MAX(INDEX(($E:$E=$A2)*($F:$F=$B2)*$G:$G,,1))>MAX(INDEX(($I:$I=$A2)*($J:$J=$B2)*$K:$K,,1)),"Plant B","Plant A")
注意:您需要将 22
的引用调整为适合您的表格的任何行。