Excel 具有多个嵌套 IFS 的函数(平均值、标准差等)
Excel Functions (Average, Standard Deviation, etc) with multiple nested IFS
我无法根据 Excel 中的多个条件计算描述性统计数据。
这是数据集的一个子集:
A B
1 2
1 3
3 1
1
空格表示缺少数据 - 我无法重命名空格(例如 -999 或 NaN)
假设我想计算平均值。我知道 A 列 中的值的真实平均值 在 A 列和 B 列中都有一个条目是 1.67(基于将数据过滤到在两列中都有条目的行)。
我已经尝试了一系列函数来解释这种情况(例如,计算 A 列中 A 列和 B 列中均有条目的值的平均值),唯一有效的函数是 AVERAGEIFS
.但是,我不能依赖它,因为我想将代码用于任何函数,例如 STDEV
,FUNCTIONIFS
函数(尚)不存在。
这是我尝试过的方法,但没有成功:
为了便于复制+粘贴,代码如下:
=AVERAGEIFS(A:A,A:A, ">=0",B:B,">=0")
=AVERAGE(IF(A:A >=0,IF(B:B >=0,A:A)))
=AVERAGE(IF(AND(A:A >=0,B:B >=0),A:A))
=IF(A:A >=0,IF(B:B >= 0,AVERAGE(A:A)))
=IF(AND(A:A>=0,B:B>=0),AVERAGE(A:A))
=AVERAGE(IF((A:A>=0)*(B:B),A:A))
回顾一下,需要满足三个条件:
1.我需要引用整个列(例如,A:A)而不是索引它的一个子集(例如,A1:A50)。
2. 我需要将缺失值作为空白
3. 我不能依赖 AVERAGEIFS,因为我希望将代码概括为任何函数(例如 STDEV)
任何指导将不胜感激。
如下:
=AVERAGE(IF(A2:A6<>"",IF(B2:B6<>"",A2:A6)))
使用 Ctrl + Shift 和 Enter 作为数组公式输入。
STDEV 的原理相同
=STDEV.P(IF(A2:A6<>"",IF(B2:B6<>"",A2:A6)))
使用 Ctrl + Shift+Enter.[=13= 作为数组公式输入]
显然,删除整列的行引用,例如=AVERAGE(IF(A:A<>"",IF(B:B<>"",A:A)))
.
这可能是您要找的:
=AVERAGE(IF(A:A<>"",IF(B:B<>"",A:A,""),""))
=STDEV(IF(A:A<>"",IF(B:B<>"",A:A,""),""))
作为数组公式输入 CTRL-SHIFT-ENTER。
希望对您有所帮助。
我无法根据 Excel 中的多个条件计算描述性统计数据。
这是数据集的一个子集:
A B
1 2
1 3
3 1
1
空格表示缺少数据 - 我无法重命名空格(例如 -999 或 NaN)
假设我想计算平均值。我知道 A 列 中的值的真实平均值 在 A 列和 B 列中都有一个条目是 1.67(基于将数据过滤到在两列中都有条目的行)。
我已经尝试了一系列函数来解释这种情况(例如,计算 A 列中 A 列和 B 列中均有条目的值的平均值),唯一有效的函数是 AVERAGEIFS
.但是,我不能依赖它,因为我想将代码用于任何函数,例如 STDEV
,FUNCTIONIFS
函数(尚)不存在。
这是我尝试过的方法,但没有成功:
为了便于复制+粘贴,代码如下:
=AVERAGEIFS(A:A,A:A, ">=0",B:B,">=0")
=AVERAGE(IF(A:A >=0,IF(B:B >=0,A:A)))
=AVERAGE(IF(AND(A:A >=0,B:B >=0),A:A))
=IF(A:A >=0,IF(B:B >= 0,AVERAGE(A:A)))
=IF(AND(A:A>=0,B:B>=0),AVERAGE(A:A))
=AVERAGE(IF((A:A>=0)*(B:B),A:A))
回顾一下,需要满足三个条件:
1.我需要引用整个列(例如,A:A)而不是索引它的一个子集(例如,A1:A50)。 2. 我需要将缺失值作为空白 3. 我不能依赖 AVERAGEIFS,因为我希望将代码概括为任何函数(例如 STDEV)
任何指导将不胜感激。
如下:
=AVERAGE(IF(A2:A6<>"",IF(B2:B6<>"",A2:A6)))
使用 Ctrl + Shift 和 Enter 作为数组公式输入。
STDEV 的原理相同
=STDEV.P(IF(A2:A6<>"",IF(B2:B6<>"",A2:A6)))
使用 Ctrl + Shift+Enter.[=13= 作为数组公式输入]
显然,删除整列的行引用,例如=AVERAGE(IF(A:A<>"",IF(B:B<>"",A:A)))
.
这可能是您要找的:
=AVERAGE(IF(A:A<>"",IF(B:B<>"",A:A,""),""))
=STDEV(IF(A:A<>"",IF(B:B<>"",A:A,""),""))
作为数组公式输入 CTRL-SHIFT-ENTER。
希望对您有所帮助。