首页 > 解决方案 > 过滤表格与 Excel 后计算第一个可见行的公式

问题描述

在过滤了一些行之后,我试图获取给定列中的第一个可见值。以下公式适用于 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 和表格有什么区别?或者更好地问。为什么它不适用于表格?

谷歌表格 3 屏幕截图

标签: google-sheetsexcel-formulagoogle-sheets-formula

解决方案


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

A    
1
2
3

并在公式中使用此列:

=SUBTOTAL(105,A:A)

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


推荐阅读