【发布时间】:2016-07-08 02:23:30
【问题描述】:
有点棘手的问题 - 我可能只需要使用适当的脚本通过 VBA 来完成,但是如果有人真的有一个复杂的答案,(老实说,我不认为有一个超级简单的公式)我是接盘侠我宁愿通过公式做尽可能多的事情。我附上了一个样本。
数据:我有与国家/地区相关的数据。在每个国家/地区,您可以拥有多个站点。对于每个站点,您可能有也可能没有不同的分布。当这些分布符合给定标准时,我想将其记为“中断”并按国家、站点等计算有多少。
它是如何工作的:为此,我使用带有 sumproduct() 的数组公式。好处是您可以轻松添加条件,每个条件都会返回您的 0/1,因此当您将它们相乘时,它会为您提供需要求和的数组,以查看您有多少中断。
问题:我无法格式化公式,以便在同一站点具有 2 种不同分布类型且都满足中断条件的情况下,我可以将每个站点仅计算一次。如果两个分布都满足中断标准,我不想将其记录为 2 个中断,否则我最终可能会得到比站点数量更多的站点记录的中断。部分问题在于我如何解释网站的单一性:
(tdata[siteid]>"")/COUNTIF(tdata[siteid],tdata[siteid] &"")
这实际上是一个 hack,因为与其他公式相反,它不返回 0/1,但可能返回分数。它们确实加起来正确,并且确实允许我正确计算站点的数量,但是数组的格式不是 0/1,因此当与其他 0/1 数组相乘时,它会弄乱结果....
我控制数据,所以我有一些余地。我使用表格(可以看出)并且已经使用了 VBA。如果有帮助,我可以对源表进行排序。源数据:
1 行 = 1 个月内 1 个网站的 1 次分发
我链接的每个国家/地区的汇总表基于这些源数据。
有什么想法吗?
编辑 - 过滤分发并不是一个真正的选择。我已经有一个用于源数据的基于事件的过滤器,并且我已经可以正确计算按分布过滤的数据的指标。但我还需要显示全局数据(目前不工作)。如果我过滤数据(它是大仪表板),还有其他需要计算的指标将不起作用。
EDIT2:换句话说,我需要找到一些方法来解释这样一个事实,即如果在具有相同 siteid 但有 2 个不同分布的 2 个站点中发现相同的标准(是否中断),我想将其计为仅 1 次休息。请记住,如果一个发行版有中断(而另一个没有),我仍然想将其记录为 1 个在该国家/地区有中断的站点。
EDIT3:我决定制作一个新表,分别汇总每个站点的数据(每个站点可能有多次分布)。然后我可以从中计算出全局的东西。
我从中得到的信息是:我认为当您在 Excel 公式中有多个级别的数据(例如国家、站点、具有某种分布的子级别)时,很难不总结中间数据您要关注的分析级别的表格。例如。就我而言,我对国家层面的分析感兴趣,它比分布水平高 2 个“水平”。这意味着从站点级别的角度来看,数据将会“重复”。您也许可以绕过这个,但我认为到目前为止更简单的解决方案是将它吸收并制作一个中间表。我也大大缩短了你的公式。
我没有将此标记为解决方案,因为这不是我想要的。仍然愿意接受更好的建议,只允许使用公式....
文件:https://www.dropbox.com/sh/4ofctha6qhfgtqw/AAD0aPJXr__tononRTpKc1oka?dl=0
【问题讨论】:
标签: arrays vba excel excel-formula