我在单元格A1:F4中具有以下数据。带有缺失值的Excel平均值
Quarter | FY15Q4 | FY16Q1 | FY16Q2 | FY16Q3 | FY16Q4
Company A | 0.34% | 0.48% | 0.55% | 0.68% | ------
Company B 0.32% 0.36% 0.34% 0.35% 0.35%
Company C | 1.18% |------ |----- |----- |
我试图从每行最后4列中找到最近一次非缺失值的平均值。因此,对于:
FY15Q4,我想的0.34%,0.32%和1.18%
FY16Q1平均,我要的0.48%,0.36%和1.18%的平均
FY16Q2,我想为0.55%,0.34%和1.18%
FY16Q3平均,我要的0.68%,0.35%,和1.18%的平均
FY16Q4,我想的0.68%和0.33%的平均(C公司具有用于最近4QS没有数据,所以它是为从平均值的计算忽略)
以下阵列式作品因为我想为FY16Q3 ...
{=AVERAGE(IF(COUNT(B2:E2)=0,"",INDIRECT(ADDRESS(ROW(B2:E2),MAX((B2:E2<>"")*COLUMN(B2:E2))))),IF(COUNT(B3:E3)=0,"",INDIRECT(ADDRESS(ROW(B3:E3),MAX((B3:E3<>"")*COLUMN(B3:E3))))),IF(COUNT(B4:E4)=0,"",INDIRECT(ADDRESS(ROW(B4:E4),MAX((B4:E4<>"")*COLUMN(B4:E4))))))}
但FY16Q4,同样的公式结构...
=AVERAGE(IF(COUNT(C2:F2)=0,"",INDIRECT(ADDRESS(ROW(C2:F2),MAX((C2:F2<>"")*COLUMN(C2:F2))))),IF(COUNT(C3:F3)=0,"",INDIRECT(ADDRESS(ROW(C3:F3),MAX((C3:F3<>"")*COLUMN(C3:F3))))),IF(COUNT(C4:F4)=0,"",INDIRECT(ADDRESS(ROW(C4:F4),MAX((C4:F4<>"")*COLUMN(C4:F4))))))
返回#VALUE错误值。
似乎AVERAGE函数通常处理空白单元格(“”)的值很困难,因为数组公式的复杂性增加了。
关于如何在没有(i)使用find-and-replace用真正空白的单元格替换“”的情况下进行此项工作的任何建议;或(ii)使用VBA?
当然,必须有一种方法使这项工作只使用公式...
您能更正FY16Q4的样本数据吗?从你的描述看,它应该是0.33%,而不是0.35%。另外,这些“-------”单元是否真的是空白的,还是它们实际上有“-----”? – Jeeped
我的问题是,实际上公司的数量是否只有3个(例如你的例子),或者是否有任何解决方案需要扩展才能适用于任何数量的公司。 –
@Jeeped - 那些确实是空白的;是的,你是正确的 - 我的错字错误。 – Jesse