我们有一个大型电子表格,用于计算赛车手的表现。它已经稳定了很长一段时间。今天,我打开它,发现其中一张表计算不正确。我尝试重新计算工作表(它被设置为手动计算),并尝试重建树(ctl+alt+shift+f9),但没有成功。引用相同命名范围的其他公式与使用平均if.的其他公式一样正确
变量
list_of_names=从CSV文件导入的单个文本字符串中的名字和姓氏列表
local_name=一个名称(100%保证包含在list_of_name中),用于计算赛道给定扇区中驾驶员表现的平均值
sector_percent=驾驶员通过特定扇区的行程中落入预定范围的百分比
sector_count=驾驶员通过扇区的行程次数
我的原始公式返回#Value错误。这是原始公式(实际公式包含IFERROR语句,但为了清楚起见,我在这里删除了它。#VALUE错误发生在任何一种情况下)。
{=平均值
经过一些实验,我发现以下公式成功地报告了正确的答案:
{=平均值(IF(list_of_names=local_name,IF(sector_percent>0,IF(sector_countmin_number_sectors、sector _percent,0))}
如果从AVERAGEIFS公式中去掉list_of_names和local_name变量,则其行为正确(给定符合标准的数据)。这让我相信,名称列表和本地名称的数据类型不匹配。但是,如果两者都设置为常规或文本,则仍会发生#VALUE错误。TYPE(list_of_name)或TYPE(local_name)当前都返回2。{TYPE(list_of_name)}返回64。
工作表能够在工作簿的其他位置和同一工作表的其他区域正确执行list_of_name到local_name的功能。
我试过:
-用公式中名称引用的实际单元格替换所有命名区域
-引用list_of_names中的不同local_names
-INDEX(list_of_names,ROW(A1))在将名称列表拖出来时会正确报告该列表。
-使用其他标准的各种标准顺序。
-其他一些我目前记不起的热点变化
本质上,每次使用AVERAGEIFS时,list_of_names与local_name在工作表的该区域的比较都会失败,其中AVERAGE(IF(不。
对我来说,这个公式无论哪种方式都是正确的,但表格这一部分的突然失败是奇怪的。
这是我在这里的第一篇帖子,如果有任何帮助,我将不胜感激。希望我已经提供了足够的信息来给出答案。如果没有,请告诉我,我会填补任何空白。
@barryhoudini和@Jeeped都是正确的。我未能将其中一个源表中的信息拖得足够远,导致范围大小不匹配。除了自己回答之外,我不知道如何接受这个答案,因为这不会在应该得到的地方得到适当的信贷。我感谢你们两位的帮助,它简洁而出色。我仍然无法理解为什么一个公式有效,而另一个公式无效。AVERAGE(如果在范围大小方面有一组限制较少的约束?