【发布时间】: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