根据最低值查找唯一代码

根据最低值查找唯一代码

我在很多地方尝试寻找这个问题的解决方案很长时间,但没能找到。

以下是描述:

我有一张产品转换时间表。我想创建一个列表,挑选下一个位置的 C/O 时间最短但不重复的产品。假设列表中的第一个项目是“手动”挑选的。

因此,使用所附的示例,该列表可能如下所示:

乙乙

您会发现,对于最后一个位置,我必须忽略 B 和 A,因为它们已经被选中。有人能帮我找出它的公式吗?

编辑:我忘了说我在工作时无法访问 Office 365,只能访问 2016。

Excel 表示例

    A   B   C   D   E
A   -   10  20  10  -
B   -   -   -   10  15
C   20  -   -   15  10
D   15  10  20  -   15
E   -   20  15  10  -

答案1

是的,很有趣的问题。首先想象一下你可以再次挑选之前挑选的物品。

首先根据手动挑选的第一项找到要搜索最小值的范围(第一项):

=INDEX($B$2:$F$6,MATCH(firstitem,$A$2:$A$6,0),)

如果第一项是“A”,这将返回一个数组{-,10,20,10,-}。

现在找到该数组中的最小值(例如在单元格 G2 中):

=MIN(INDEX($B$2:$F$6,MATCH(firstitem,$A$2:$A$6,0),))

然后是该最小值的索引位置(例如在单元格 H2 中):

=MATCH(G2,INDEX($B$2:$F$6,MATCH(firstitem,$A$2:$A$6,0),),0)

及其对应的名称(在单元格 I2 中举例):

=INDEX($B$1:$F$1,H2)

现在你可以重复下一行,而不是引用 I2第一项

要忽略之前选择的项目,我们必须传播一个掩码,该掩码会修改上述每个步骤中的搜索数组。掩码一开始将是行 1,1,1,1,1,然后如果选择了“B”,则变为 1,0,1,1,1。使用 MINIFS 过滤 K2:O2 中的掩码

=MINIFS(INDEX($B$2:$F$6,MATCH(firstitem,$A$2:$A$6,0),),K2:O2,1)

=MATCH(G2,INDEX($B$2:$F$6,MATCH(firstitem,$A$2:$A$6,0),)*K2:O2,0)

相关内容