【发布时间】:2019-05-24 16:37:17
【问题描述】:
更新:我运行了一个脚本,它重新启用了自动计算,启用了屏幕更新和所有其他好东西,这些功能现在可以工作了。我前进的印象是它是另一个 Excel 视觉故障并且功能正在运行,只是屏幕以某种方式破坏了这些单元格。
谢谢大家的快速响应和支持,我输了。
初始问题:
这让我发疯了。我在 Excel 中使用 COUNTIFS() 构建了一个函数,该函数在型号匹配时查找列中列出的该工作周的次数。型号为 6.3、6.4 和 6.5。 对于模型 6.3 和 6.4,该函数可以正常工作并正确执行所有计算。对于6.5,即使功能完全一样,它也没有。事实上,当我评估函数时,我得到了正确的数学结果(它应该是 3-2 = 1),但它最终是 0:
由于专有信息泄露,我无法提供太多功能细节。但是,我可以向您展示它正在读取的数据,而其他所有的列和行都隐藏了,所以如果它看起来很乱,我很抱歉,COUNTIFS() 函数中仅有的两个数组(顶部亮红色和绿色框,相关的型号带有下划线上)将型号与最左列(黄色、红色和浅绿色)匹配,今天(1921)工作周和年与左第二列(深和浅绿色)匹配:
我可以向您展示这些功能确实有效,当我将第一行的模型从 6.3 切换到 6.4 时,6.3 的适当更改从计数 1 切换到计数 0,并且模型 6.4 的更改从5到6:
但是,当我将第一行的模型切换到 6.5 时,6.3 和 6.4 COUNTIFS() 都正确更新(0 和 5 连续),但不是 6.5(仍然是 0,现在应该显示 2):
只是为了向你证明,我在单元格上运行“评估公式”,结果是正确的 (4-2),但最后一步它会出错并显示 0:
函数的简化版本是:
=COUNTIFS(ModelArray,ModelNumber,WorkWeekArray,INDEX(WorkWeekArray,MATCH((NUMBERVALUE(RIGHT(YEAR(NOW()),2)&TEXT((WEEKNUM(NOW(),21)),"00"))),WorkWeekArray,0)))- COUNTIFS(ModelArray,ModelNumber,ModelStatus,StatusIsRed,WorkWeekArray,INDEX(WorkWeekArray,MATCH((NUMBERVALUE(RIGHT(YEAR(NOW()),2)&TEXT((WEEKNUM(NOW(),21)),"00"))),WorkWeekArray,0)))
列出的每个 WorkWeekArray 值也是使用相同的 NUMBERVALUE() 函数计算的:
NUMBERVALUE(RIGHT(YEAR(ModelDate),2)&TEXT((WEEKNUM(ModelDate,21)),"00")
请帮忙,我疯了,这是我正在构建的一个关键工具。当软件无法正常运行时,这让我看起来很糟糕! 提前谢谢你:)
意见附录:
【问题讨论】:
-
如果您不显示公式,我们如何提供帮助?
-
我试图显示公式计算正确,但不知何故变成了 0,如上图所示。我向您展示公式并没有真正意义,因为它们在所有 3 个模型中都是相同的,因此它们的行为应该相同,并且正如评估所示,它们确实如此,但是 COUNTIFS() 存在一些问题,导致值最后是0?
-
我已按照您的要求在问题中添加了 COUNTIFS() 函数。
-
你能解释一下
INDEX(WorkWeekArray,MATCH((NUMBERVALUE(RIGHT(YEAR(NOW()),2)&TEXT((WEEKNUM(NOW(),21)),"00"))),WorkWeekArray,0))的必要性吗?当我读到它时,它只是返回被搜索的相同内容:NUMBERVALUE(RIGHT(YEAR(ModelDate),2)&TEXT((WEEKNUM(ModelDate,21)),"00") -
没有真正的需要,这是我试图让它再次工作的原因。
标签: excel excel-formula countif