AVERAGEIFS 不起作用,但 AVERAGE(IF( 起作用

AVERAGEIFS does not work, but AVERAGE(IF( does

我们有一个很大的价差sheet,我们用它来计算赛车的性能 drivers。它已经稳定了一段时间。今天打开一看,发现其中一张表计算不对。我尝试重新计算 sheet(它设置为手动计算),并尝试重建树 (ctl+alt+shift+f9) 无济于事。其他公式引用相同命名范围的函数与其他使用平均 if 的公式一样正确。

变量

list_of_names = 从 CSV 文件导入的单个文本字符串中的名字和姓氏列表

local_name = 一个名字(100%保证包含在list_of_names中)来计算一个driver的平均表现在轨道的给定部分

sector_percent = driver 通过特定扇区的行程中属于 pre-determined 范围的百分比

sector_count = driver 通过扇区

的行程次数

我的原始公式 return 是一个 #Value 错误。这是原始公式(实际公式包含一个 IFERROR 语句,但为了清楚起见,我已在此处将其删除。#VALUE 错误会以任何方式发生)。

{=AVERAGEIFS(sector_percent,list_of_names,local_name,sector_percent,">0",sector_count,">"&min_number_sectors)}

经过一些实验,我发现以下公式成功地报告了正确答案:

{=平均值(IF(list_of_names=local_name,IF( sector_percent>0,IF(sector_count>min_number_sectors,sector_percent,0))))}

如果您从 AVERAGEIFS 公式中去除 list_of_nameslocal_name 变量,它的行为是正确的(给定符合标准的数据)。这使我相信名称列表和本地名称的数据类型不匹配。但是,如果两者都设置为常规或文本,#VALUE 错误仍然会发生。 TYPE(list_of_names) 或 TYPE(local_name) 均 return 2。 {TYPE(list_of_names)} return应该是 64。

sheet能够在工作簿的其他地方和同一个sheet的其他区域正确执行list_of_names到local_name的功能。

我试过:

-用公式中名称引用的实际单元格替换所有命名范围

-引用不同的local_nameslist_of_names

-INDEX(list_of_names,ROW(A1)) 拖出时正确报告名称列表。

-标准的各种顺序,使用其他标准。

-我目前不记得的其他一些当下的热点变化

本质上,list_of_nameslocal_name 比较在 [=134= 的这个区域失败了] 每次使用 AVERAGEIFS where AVERAGE(IF( does not.

对我来说,无论哪种方式,公式都是正确的,但是 sheet 这一部分的突然失败是奇怪的。

这是我第一次 post 在这里,如果能提供任何帮助,我将不胜感激。希望我已经提供了足够的信息来得出答案。如果没有,请告诉我,我会填补任何空白。

@barryhoudini 和@Jeeped 都是正确的。我未能将其中一个源表中的信息拖得足够远,导致范围大小不匹配。除了自己回答之外,我无法弄清楚如何接受它作为答案,这不会在肯定到期的地方应用适当的学分。我感谢你们俩的帮助,它简洁而出色。我仍然无法理解为什么一种公式有效而另一种无效。是否有可能 AVERAGE(If 在范围大小方面有一组限制较少的约束?