我们有一个大型电子表格,用于计算赛车手的表现。它已经稳定了很长一段时间。今天,我打开它,发现其中一个表没有正确计算。我尝试重新计算工作表(它设置为手动计算),并尝试重建树(ctl + alt + shift + f9)无济于事。引用相同命名范围的其他公式正确使用平均值if的其他公式。
变量
list_of_names =从CSV文件导入的单个文本字符串中的名字和姓氏列表
local_name =一个名称(100%保证包含在list_of_names中),用于计算轨道给定扇区中驾驶员表现的平均值
sector_percent =驾驶员在特定行业中的行程百分比属于预定范围
sector_count =司机通过某个部门进行的旅行次数
我的原始公式返回#Value错误。这是原始公式(实际公式包含IFERROR语句,但为了清楚起见,我已将其删除。#VALUE错误以任何一种方式发生。)
{= AVERAGEIFS( sector_percent , LIST_OF_NAMES , LOCAL_NAME , sector_percent ,"大于0& #34;, sector_count ,">"&安培; min_number_sectors )}
经过一些实验,我发现以下公式成功地报告了正确的答案:
{= AVERAGE(IF( LIST_OF_NAMES = LOCAL_NAME ,IF( sector_percent 大于0,IF( sector_count > min_number_sectors , sector_percent ,0))))}
如果从AVERAGEIFS公式中删除 list_of_names 和 local_name 变量,则其行为正确(给定符合条件的数据)。这使我相信名称列表和本地名称不是匹配的数据类型。但是,如果将两者都设置为常规或文本,则仍会出现#VALUE错误。 TYPE(list_of_names)或TYPE(local_name)目前都返回2。 {TYPE(list_of_names)}应该返回64。
该工作表能够在工作簿中的其他位置以及同一工作表的其他区域中正确执行list_of_names到local_name函数。
我试过了:
- 使用公式
中名称引用的实际单元格替换所有命名范围- 参考 list_of_names
中的不同 local_names-INDEX( list_of_names ,ROW(A1))在您将其拖出时正确报告名称列表。
- 使用其他标准的各种标准订单。
- 当下其他许多热量发生了变化,我现在无法回想起
基本上, list_of_names 到 local_name 比较在每次使用AVERAGEIFS时都会在工作表的这个区域失败(IF(没有。
对我来说,无论哪种方式都是正确的,但是这张纸的这一部分的突然失败是奇怪的。
这是我在这里发表的第一篇文章,我将不胜感激。希望我提供了足够的信息来回答问题。如果没有,请告诉我,我将填补任何空白。
答案 0 :(得分:3)
@barryhoudini和@Jeeped都是正确的。我没有在其中一个源表中拖动信息,导致范围大小的大小不匹配。我无法弄清楚如何接受这个作为答案,而不是自己回答,这不适用于肯定应有的适当信用。我感谢你们的帮助,它简洁而优秀。我仍然无法理解为什么一个公式有效,一个没有。 AVERAGE是否有可能(如果在范围大小方面有一些限制较少的约束?