【问题标题】:Create a multiple criteria, multiple row 'IF and MIN' conditional formula创建一个多条件、多行 'IF 和 MIN' 条件公式
【发布时间】:2017-07-13 08:35:06
【问题描述】:

我有一个包含来自排水程序(管道和坑)的值的电子表格,我想创建一个公式来查找坑名称,然后在连接到该坑的管道的下游端找到最小值。

我可以用一个数组来做 - {=MIN(IF('ArcGIS Pipes'!$C$2:$C$100=A3,'ArcGIS Pipes'!$F$2:$F$100))}。但是,有时坑只连接到上游端,这意味着它位于U/S IL (m) 下的不同列中。如果是这种情况,那么我想要那个值,但目前我必须先运行 D/S IL (m) 列公式,如果没有返回任何内容,那么我必须手动将 null 单元格更改为 {=MIN(IF('ArcGIS Pipes'!$B$2:$B$100=A2,'ArcGIS Pipes'!$E$2:$E$100))} 以检查U/S IL (m) 专栏。一旦我这样做了,任何剩余的null 值都是不连接到任何管道的坑,并且它们被手动赋予空值。

所以,我想做的是有一个公式可以为我完成上述所有操作,而我不必经历和摆弄事情。简而言之,我希望公式首先检查一列中的最小下游值,如果不返回任何内容,那么我希望它检查另一列中的最小上游值,最后如果不返回任何内容,那么我希望返回空值。

我摆弄了嵌套的 IF 和子数组,但只是得到一个错误或 FALSE 返回。我试过的公式给我FALSE=IF((MIN(IF('ArcGIS Pipes'!$C$2:$C$100=A2,'ArcGIS Pipes'!$F$2:$F$100))),IF(MIN(IF('ArcGIS Pipes'!$B$2:$B$100=A2,'ArcGIS Pipes'!$E$2:$E$100)),null))。我知道我错过了一些东西,但我开始绕圈子了!

Screengrab - left table is the source table, right is the results table

【问题讨论】:

  • 可以添加表格的屏幕截图吗?
  • 请格式化公式;它们目前是阅读的噩梦。
  • 如果我明白了,何不试试=If([first formula]=0,[second formula],[first formula])?您应该在第一列中检查运行它的结果。如果在第二列中是 0,则运行第二个公式。
  • 差不多了,谢谢@BruceWayne!唯一缺少的是如何在没有发现任何内容时将结果 0 值转换为随机分配的 null',例如 -999。
  • 抱歉读错了,在不窃取@BruceWayne 的答案的情况下,再添加一个 if() 使其看起来像这样:=If([first formula]=0,[second formula],if([second公式]=0,"-999",[第二个公式])。

标签: arrays excel if-statement excel-formula conditional


【解决方案1】:

这可能是您正在寻找的数组公式¹。在 K2 中,

=IF(ISNUMBER(MATCH(H2,C:C, 0)),
      AGGREGATE(15, 6, F$2:INDEX(F:F, MATCH("zzz",C:C ))/(C$2:INDEX(C:C, MATCH("zzz",C:C ))=H2), 1),
   IF(ISNUMBER(MATCH(H2,B:B, 0)),
      AGGREGATE(15, 6, E$2:INDEX(E:E, MATCH("zzz",B:B ))/(B$2:INDEX(B:B, MATCH("zzz",B:B ))=H2), 1),
      "no match"))

根据需要填写。


¹ 数组公式需要使用 Ctrl+Shift+Enter↵ 完成。如果输入正确,Excel 会将公式用大括号括起来(例如 {})。你不用自己输入大括号。一旦正确输入第一个单元格,它们就可以像任何其他公式一样被填充或向下或向右复制。尝试将全列引用减少到更接近代表实际数据范围的范围。数组公式以对数方式消耗计算周期,因此最好将引用范围缩小到最小值。更多信息请参见Guidelines and examples of array formulas

【讨论】:

    猜你喜欢
    • 2017-04-02
    • 1970-01-01
    • 2019-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-29
    • 1970-01-01
    相关资源
    最近更新 更多