【问题标题】:Formula to calculate first visible row after filtering Sheets vs. Excel过滤表格与 Excel 后计算第一个可见行的公式
【发布时间】:2019-09-02 18:21:15
【问题描述】:

过滤一些行后,我试图获取给定列中的第一个可见值。 以下公式适用于 Excel,但不适用于 google 表格。 请查看图片以了解表格结果。 公式适用于 A2:A4 范围。

我将公式中的if语句的逻辑测试更改为公式的预期结果(至少我理解的方式)如下

逻辑测试部分:

    SUBTOTAL(3,OFFSET(A2,ROW(A2:A4)-ROW(A2),0))

逻辑测试的预期评估: {0,1,2}

原文:

=ArrayFormula(INDEX(A2:A4,MIN(IF(SUBTOTAL(3,OFFSET(A2,ROW(A2:A4)-ROW(A2),0)),ROW(A2:A4)-ROW(A2)+1))))

解析后:

=ArrayFormula(INDEX(A2:A4,MIN(IF({0;1;2},ROW(A2:A4)-ROW(A2)+1))))

第二个公式完美运行。如图 #3 所示。

问题出在这里是有道理的,因为 小计 是唯一忽略隐藏行的公式。

此逻辑测试返回 3 个值数组 {0,1,2}。每个值分别是 3 个范围 A2:A2,A2:A3,A2:A4 中的 可见 行数,用 offset 函数计算得出。

请注意图片 #3,显示我第一次不小心将逻辑测试数组解析为 {0,1,1} 而不是 {0,1,2}。它并没有真正做出改变:

    if(1) = if(2) = true

Excel 和表格有什么区别?或者更好地问。为什么它不适用于表格?

【问题讨论】:

    标签: google-sheets excel-formula google-sheets-formula


    【解决方案1】:

    您可以创建一个带有行索引的辅助列:

    A    
    1
    2
    3
    

    并在公式中使用此列:

    =SUBTOTAL(105,A:A)

    代码105 将按列查找最小值并跳过隐藏值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-06
      相关资源
      最近更新 更多