我应该使用哪个公式来知道哪些数字总和会得出我在 Excel 中的精确结果

我应该使用哪个公式来知道哪些数字总和会得出我在 Excel 中的精确结果

在下面的图片中我有这些数字。

现在我想知道哪些数字相加的结果会是 98541.03。我该如何找到答案?

结果

答案1

您必须强行解决它:计算所有可能的 SUM 组合并找到匹配集。

如果你有价值观,你将拥有2^N可能的解决方案。这个想法是使用二进制表示来减少所需的数学运算。假设每行分配一个整数位,例如 1001 表示值 1 和值 4 之和。所以现在,在新的工作表中,A 列中的数值从 0 到 (2^)-1 以十进制表示。如果在 B 中添加一列=BASE(A1,2,N),这将给出每个可能组合要计算的总和的二进制表示。在下一列 (C) 中输入

=SUMPRODUCT(data,--MID(B1,N-ROW(data)+ROW(INDEX(data,1)),1))

在哪里数据就是说sheet1!A1:A100与源值=ROWS(data)。这是一个数组公式,在 365 之前的 Excel 版本中必须使用 CTRL+SHIFT+ENTER 进行确认。它采用总和组合值并将其转换为二进制(作为零和一的文本字符串)。此字符串转换为数组{"0"; “1”; ...}使用 MID 和数组来显示文本{N; N-1; ...; 2; 1}输入变量来自数据向量的引用地址。字符串数组转换为数字--如减去,最后使用 SUMPRODUCT 来计算该组合的总和。

在 D 列中,搜索匹配的组合,并向上传播,以便它在顶行可见(假设只有一个唯一的解决方案):

=IF(C1=98541.03,B1,C2) 

答案2

您可以使用 Excel“求解器”功能来为您完成此操作,但它不是公式,而是每次您想要找到总和的数字时手动运行的向导。我将在这里创建一个非常小的样本来演示,然后您只需按比例扩大范围即可。

1. 先决条件

  • 您必须在 Excel 中打开求解器插件
  • 您必须在某处创建辅助列。它可以隐藏在其他地方,甚至可以隐藏在工作簿内的不同工作表上。只需具有与数据列相同的行数即可。

2. 在数据或其他位置添加一列

假设这是 A1:B7:

价值 找到了
100 1
400 1
600 1
225 1
409 1
625 1

3. 设置求解器信息

  • 转到单元格 D1 并输入=sumproduct(A2:A7,B2:B7)。单元格现在将包含所有 A 值的总和。

  • 转到单元格 D2 并输入要查找的总和。假设您为此示例数据输入809

  • 转到单元格 D3 并输入=D1-D2。此单元格是总和与所寻求目标 809 之间的差值。

4. 逻辑解释

我们将告诉求解器在 B 列的每个单元格中反复试验 1 和 0 的组合。SUMPRODUCT 将每个值与其关联的 1 或 0 相乘。因此,在这种情况下,D1 将包含所有旁边有 1 的值的总和,而忽略旁边有 0 的任何值。

因此,让解算器为您尝试 1 和 0 的所有可能组合。

5. 运行求解器

  • 设置objective为D3。
  • 设置To:Value OF: 0
  • 设置By Changing Variable Cells$A$2:$B$7我的样本数据——根据您的情况进行调整
  • 添加Subject to the Constraints条目:$A$2:$B$7,并将中间字段设为bin。约束字段应为binary
  • 点击Solve
  • 如果找到匹配的组合,请选择Keep Solver Solution并点击OK
  • A 列中的值将保持不变。只有达到目标的值才会在 B 列中显示为 1,其他所有值都将显示为 0。

六,结论 第一次设置需要一分钟,之后您将能够在几秒钟内检查任何总和。将新的所需总和放在 D2 中并运行解算器。

相关内容