【问题标题】:Combining LARGE, SUMPRODUCT, and logical filtering in Excel array function在 Excel 数组函数中结合 LARGE、SUMPRODUCT 和逻辑过滤
【发布时间】:2017-01-27 19:11:34
【问题描述】:

总结:一个复杂的(对我来说)多页数组公式在某个列中停止工作,我不知道为什么。

设置:我正在编写一个电子表格来确定梦幻棒球运动员的价值观。 Sheet1 包含粘贴的每个击球手的原始统计数据,而 Sheet2 包含允许我确定最终值的中间计算。

  • 在示例公式中,Sheet1 列 C 保存指定位置的文本字符串,Sheet1 列 E 保存每个球员的击球次数。
  • 第三个引用列与正在处理的统计信息相关联。
  • 前两个公式按预期工作,但我添加它们是为了帮助了解整个过程。
  • 所有这三个公式都在 Sheet2 上实现。

公式 A: 旨在通过平均“合格池”中的第 157-171 个值来计算给定统计数据的“替换值”。合格值是球员至少有 200 次击球的值。有 12 支球队乘以 13 名击球手等于 156 名联盟击球手。

{=(SUMPRODUCT(LARGE(IF(Sheet1!$E$2:$E$1500 > 199, Sheet1!V$2:V$1500),ROW(INDIRECT("$157:$171"))))/15)}

公式 B: 由于位置稀缺,旨在仅为捕手计算给定统计数据的“替换值”。通过平均“合格池”中的第 13 到第 16 个值来工作 合格值是玩家至少有 200 次击球且描述其位置的单元格包含“C”的值。有 12 支球队乘以 1 个所需捕手等于 12 个联赛捕手。

{=(SUMPRODUCT(LARGE(IF((ISNUMBER(SEARCH("C",Sheet1!$C$2:$C$1500))) * (Sheet1!$E$2:$E$1500 > 199), Sheet1!V$2:V$1500),ROW(INDIRECT("$13:$16"))))/4)}

公式 C: 旨在仅为非捕手计算给定统计数据的“替换值”。通过平均“合格池”中的第 145 到 158 个值来工作。限定值是公式 B 的倒数;目的是捕获所有在其位置单元格中不包含“C”的值,或者在 bats 中没有至少 200 个值。

{=(SUMPRODUCT(LARGE(IF(((ISNUMBER(SEARCH("C",Sheet1!$C$2:$C$1500))) + (Sheet1!$E$2:$E$1500 < 200) > 0),, Sheet1!V$2:V$1500),ROW(INDIRECT("$145:$158"))))/14)}

问题行为:公式与从外部来源粘贴的统计数据完美配合。但是,向 Sheet1 添加了四列,其值来自粘贴的值。例如,Sheet1!V2 将包含以下公式:

=$Q2-(Sheet2!$O$5 * $E2)

Sheet2!O5 包含基于 Sheet1 中的值的公式,但不包含 V 列,仅包含粘贴的值。 Sheet2!O5 的值为 0.4825。

当应用于添加到 Sheet1 并从粘贴值派生的四个统计信息时,公式 C 为每个统计信息返回 0。

公式 A 和 B 按预期适用于四个新的统计数据,而公式 C 则适用于所有粘贴的值统计数据。

尝试的解决方案:

  • 用它们的值(而不是公式)替换新的计算统计数据

其他:

  • 之所以使用IF(ISNUMBER(SEARCH())),是因为有些玩家可能有多个位置。我想用“C”隔离每个人,即使单元格中有更多字符。

  • 四个新统计数据的预期值与粘贴的统计数据的预期值之间的一个区别是,我预期的结果(返回零)预期为负时间>。应用公式 C 的其他统计数据不期望或返回负值。但是,公式 A 和 B 从四个新统计数据中返回预期的负值没有问题。

问题:为什么这个公式会从新添加的统计数据中返回 0,我可以做些什么或测试来解决这个问题?

谢谢。

【问题讨论】:

    标签: excel excel-formula


    【解决方案1】:

    我仍然不知道原因,但是通过添加引号来填充公式的“如果为真”部分而不是将两个逗号放在一起,从而解决了问题。

    修正后的公式:

    {=(SUMPRODUCT(LARGE(IF(((ISNUMBER(SEARCH("C",Sheet1!$C$2:$C$1500))) + (Sheet1!$E$2:$E$1500 < 200) > 0),"", Sheet1!V$2:V$1500),ROW(INDIRECT("$145:$158"))))/14)}

    添加引号对数据为正的列的值没有影响,但将数据为负的列从0切换到预期的负值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-20
      • 1970-01-01
      • 2016-03-11
      • 2017-09-26
      • 1970-01-01
      • 1970-01-01
      • 2019-01-18
      相关资源
      最近更新 更多