首页 > 解决方案 > Excel - 仅使用每行和列一次在表中查找最高和的函数

问题描述

我有一个 10 行和 10 列的 excel 表。

该表包含 1 到 3 之间的 100 个不同值。

我想使用每行的 1 个值和每列的 1 个值来找到 10 个值的最大总和。

你们知道找到最高和的函数吗?- 我试过手动做,但有很多组合!希望这是有道理的。提前致谢:)

标签: excel-formula

解决方案


在此处输入图像描述

我的解决方案建立在我在评论中所写的基础上,即您首先取 10x10 数组中的最大值,然后取 9x9 数组中的最大值(不包括第一个最大值的行/列)等。我的解决方案尽量不做一切都在一个公式中,但我添加了一些辅助列和更多辅助行(它快速而肮脏,但它有效并且易于审核/理解)。您始终可以在单独的工作表上执行此操作,如果需要,您可以将其隐藏。

上面的屏幕截图从单元格 A1 到 Y31。

关键公式:

  • 3.55 是结果=MAX(B2:K11)
  • 第一个灰色单元格是=IFNA(MATCH($M12;B2:B11;0);""),您将这 9 个单元格拖到左侧。这试图在表的每一列中找到与最大结果的匹配;
  • 3.55 左边的 10 是=MATCH(TRUE;INDEX(ISNUMBER(P12:Y12);0);0), 并给出最大值的列号。
  • 10 旁边的 2 是=INDEX(P12:Y12;N12)并给出最大值的行号。
  • 单元格 B12 中的 1 是=IF(OR(B$1=$N12;$A12=$O12);0;1),并创建一个 10x10 矩阵,其中行和列为零,其中找到了先前的最大值。
  • 然后将其与前面的矩阵相乘,并在下面创建一个新的 10x10 矩阵({=B2:K11*B12:K21}在 B22-K31 中输入数组公式 (ctrl+shift+enter)
  • 然后,您在下面复制/粘贴第 12 到 31 行 9 次
  • =SUM($M$12:$M$211)23.02 是所有 10 个最大值的总和,是您正在寻找的结果。10 只是一张支票=COUNT($M$12:$M$211)

推荐阅读