【发布时间】:2020-12-02 04:50:59
【问题描述】:
这是我的问题:我的文档中有 2 张纸(我们称它们为 Sheet 1 和 Sheet 2)。它们包含相似的东西,看起来都像这样(名称和值可能不同):
A、C、D 和 F 列包含时间(以 m:ss 为单位)。 B 列和 E 列都计算 NameX 和 NameY 之间的时间差,并根据实际差值添加 ">、
现在我的问题来了:我想找到 3 个最小值(在表 3 上)。 最小 1 很简单,因为我可以使用这个函数(它会自动过滤掉 B 列和 E 列):
MIN('Sheet 1'!A2:F2, 'Sheet 2'!A2:F2)
至少 2 和 3 是我挣扎。
最小值 2: 使用示例值,我想找到 (1:01+1:02)、(1:02+1:05)、(1:01+) 的最小值1:01) 和 (1:01+1:02) (+ 第 2 页上的任何时间)。结果应该是 2:02。
最小值 3: 同样,使用示例值,我想找到 (1:01+1:02+1:03)、(1:02+1:05+) 的最小值0:30)、(1:01+1:01+1:12) 和 (1:01+1:02+2:02)(+ 第 2 页上的任何时间)。结果应该是 2:37。
我目前正在使用这个公式(至少 3 个):
=MIN(
IFERROR(FILTER(IFERROR(ARRAYFORMULA({'Sheet 1'!A2:F2}+{'Sheet 1'!A3:F3}+{'Sheet 1'!A4:F4})),
IFERROR(ARRAYFORMULA({'Sheet 1'!A2:F2}+{'Sheet 1'!A3:F3}+{'Sheet 1'!A4:F4}))<>0)),
IFERROR(FILTER(IFERROR(ARRAYFORMULA({'Sheet 2'!A2:F2}+{'Sheet 2'!A3:F3}+{'Sheet 2'!A4:F4})),
IFERROR(ARRAYFORMULA({'Sheet 2'!A2:F2}+{'Sheet 2'!A3:F3}+{'Sheet 2'!A4:F4}))<>0))
)
一些注意事项:需要内部 IFERROR 函数来过滤在尝试将 B 列和 E 列相加时明显发生的错误。FILTER 函数过滤掉空列(本示例中没有)。第二个 IFERROR 函数过滤掉在根本没有输入时返回错误的 FILTER 函数(工作表中的所有列都是空的)。我想过滤这些,因为我不想得到 0:00 作为结果
我的问题是:在我的实际工作表中,我有 11 个工作表,其中有 16 行要加起来,但我不想使用上面的公式并创建一个公式的疯狂怪物,只要 x 倍上面的公式。
所以我的问题是:对于我没有看到的最小 3(因此是 4、5、6 ...),有没有更简单的方法来解决这个问题?
【问题讨论】:
-
请使用工具栏上的图像按钮将图像添加到您的代码中,而不是链接到您自己的位置。图片需要放置到 SO imgur 位置,以便它们在您的问题中可供将来使用。
-
分享您的工作表副本
标签: google-sheets google-sheets-formula array-formulas