【发布时间】:2026-01-30 06:25:01
【问题描述】:
我有一个相当简单的问题,我似乎无法解决。现在你们中的一些人可能已经很熟悉了。
我有以下矩阵(我将其称为两个数组):
F G H I J ... R S T U V
1 0 0 1 1
4 4 2 3 5 1 2 3 1 2
2 2 3 1 2 0 1
2 1 0 0 4 0 0 3 0 0
我想取数组 1 中每一行的平均值(列 F:J)和数组 2 中每一行的平均值(列 R:V)之间的差值。例如,F2:J2 的平均值 = 3.6,R2:V2 的平均值 = 1.8,整体差异 = 1.8。然后,我想计算超过给定阈值(例如 1)的总体差异的数量,但我想忽略没有条目的行(参见 R1:V1)和/或部分缺失的条目(参见F3:J3 行中的第 2 个条目以及 R3:V3 行中的第 4 个和第 5 个条目。
我很幸运被@Tom Sharpe 介绍给数组公式,并尝试将他的代码改编为a similar issue I had,例如:
=SUMPRODUCT(--((SUBTOTAL(1,OFFSET(F1,ROW(F1:F4)-ROW(F1),0,1,COLUMNS(F1:J1)))-SUBTOTAL(1,OFFSET(R1,ROW(R1:R4)-ROW(R1),0,1,COLUMNS(R1:V1)))>1)*(SUBTOTAL(2,OFFSET(F1,ROW(F1:F4)-ROW(F1),0,1,COLUMNS(F1:J1)))=COLUMNS(F1:J1))*(SUBTOTAL(2,OFFSET(R1,ROW(R1:R4)-ROW(R1),0,1,COLUMNS(R1:V1)))=COLUMNS(R1:V1))>0))
据我了解,代码尝试计算每个数组中每行的平均值之间超过 1 的差异数,只要具有完整条目的列数之间的乘积大于 0(即具有完整数据)。但是,它不断抛出#DIV/0! 错误,我认为这是因为它仍在尝试减去 F1:J1 和 R1:V1 的平均值(例如,空行),这会产生这种错误.当前示例的正确答案是 1(例如,F2:J2 [3.6] - R2:V2 [1.8] = 1.8 == 1.8 > 1)。
是否有人对如何为当前目的尝试代码有任何想法,或者对当前代码中出了什么问题有一个简短的解释?
【问题讨论】:
标签: arrays excel excel-formula average subtotal