繁体   English   中英

带有空白表作为起点投掷错误的动态Excel图表

[英]Dynamic Excel Chart with Blank Sheet as Starting Point Throwing Errors

我创建了一个月度费用跟踪器。 随着月的进展,输入收据,Excel将使用每个类别的公式自动根据所有工资类型创建连续的月度总计,例如:

=((SUMIF($J$3:$J$58,"Computer", $I$3:$I$58))+(SUMIF($J$3:$J$58,"Computer", $F$3:$F$58))+(SUMIF($J$3:$J$58,"Computer", $E$3:$E$58)))

这些总计保存在每个月收据输入界面底部的电子表格中。 每个月收据输入界面都基于其总计电子表格生成一个图表。 然后,这些数据通过链接传输到年度摘要电子表格,并基于此生成年度运行图表。 除了一个问题,其他所有东西都工作正常。 每个月都以空白纸开始。 在输入数据之前,动态图表将引发错误,特别是:

“此工作表中的公式包含一个或多个无效引用。”

每当有人查看空白图表,或者他们保存工作簿或Excel自动保存它时,都会发生此错误。

该图表在“名称管理器”中有两个项目:

CATEGORY =OFFSET(A!$B$105,0,0,A!$A$143,1)

TOTAL =OFFSET(A!$C$105,0,0,A!$A$143,1)

问题在于,直到输入第一个收据,$ A $ 143都为0,这就是导致错误的原因。 该语句的金额为$ A $ 143:

=+COUNTIF(C101:C134,">0")

这指向一个隐藏的排序表,其中包含一堆VLOOKUP数据,例如:

=VLOOKUP($A105,$C$64:$E$97,2,FALSE)

这是引用上面我的第一段中提到的收据输入界面底部的运行月度总计图表,按以下公式进行排名:

=(RANK(E93,$E$64:$E$97))+COUNTIF(E$64:E92,E93)

结果是忽略了所有零值的费用类别。 有许多可能的类别。 因此,即使它们的值为零,将它们全部列出在每个图表中也会产生视觉混乱的演示。

就像是我在使用工作簿一样,就可以了。 但是会有其他人,他们一定会被错误所迷惑。 任何帮助,将不胜感激。 我一天中大部分时间都在阅读博客文章,但还没有看到“啊哈!” 时刻。 我已尽力将所有内容都列出来,这样既可以理解,又包括有用的细节。 请让我知道,如果你有任何问题。

您可以将陷阱公式替换为0陷阱条件

=MAX(1,COUNTIF(C101:C134,">0"))

它会错误地显示1而不是0,但是您可能只需要选择邪恶程度较小的那个即可。

因此,正如hnk所描述的那样,解决此问题的方法并不容易。 我以为我会分享我的解决方法。 这样,该线程就不会成为无用的孤儿。

如上所述,我没有留下空白的动态图表,而是在每个工作表中将其删除并替换为VBA触发器。 例:

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = "$J$3" Then
Call A_Chart_Creation
End If

End Sub

这样,当每个月(在必须填充J3的单元格的过程中)输入第一笔费用时,在本例中为A_Chart_Creation的宏将创建动态图表,然后所有内容都将自动驾驶。 由于费用跟踪器还包含年度摘要费用日志和图表,因此我在1月份的宏中包括了年度图表的生成。 这样一来,一切都变得干净整洁:没有用户混淆的错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM