棘手的重复控件:在Excel数组公式

时间:2016-03-21 14:13:59

标签: arrays excel vba excel-vba excel-formula

有点棘手的问题 - 我可能只需通过VBA使用正确的脚本来完成它,但是如果有人确实有一个复杂的答案,(说实话我不认为有一个超级简单的公式)我是接受者。我宁愿通过公式尽我所能。我附上了一个样本。

数据:我有与国家有关的数据。在每个国家/地区,您可以拥有多个站点。对于每个站点,您可能有或没有不同的发行版。当这些分布满足给定的标准时,我想把它作为一个“休息”&按国家,网站等计算数量

它是如何工作的:我正在使用带有sumproduct()的数组公式。好处是你可以轻松添加标准,每个标准都会返回你的0/1,所以当你将它们相乘时,它会为你提供你需要总结的数组来查看你有多少休息。

问题:我无法格式化公式,以便在同一网站具有2种不同的分发类型并且都满足中断条件的情况下,我只能对每个网站进行一次计算。如果两个发行版符合中断标准,我不想将其记录为2个中断,否则我最终可能会有更多站点记录中断而不是站点数量。部分问题在于我如何解释网站的独特性:

(tdata[siteid]>"")/COUNTIF(tdata[siteid],tdata[siteid] &"")

这实际上是一个黑客,在某种意义上,与其他公式相反,它不会返回0/1但可能是分数。它们确实正确加起来并且允许我正确地计算站点数量,但是数组没有形成为0/1,因此当与其他0/1阵列相乘时它会混淆结果.... / p>

我控制数据,所以我有一些余地。我使用表(可以看出)并且已经使用了VBA。如果有帮助,我可以对源表进行排序。来源数据:

1行= 1个月1个站点的1个分布

我链接的每个国家/地区的摘要表都基于这些源数据。

有什么想法吗?

编辑 - 过滤分发不是一个真正的选择。我已经有一个基于事件的源数据过滤器,我已经可以通过分布正确计算过滤数据的指标。但我还需要显示全局数据(目前无法正常工作)。还有其他指标需要计算,如果我过滤数据(它是大仪表板),这将无效。

EDIT2:换句话说,我需要找到一些方法来解释这样一个事实:如果在具有相同siteid但有2个不同发行版的2个站点中找到相同的标准(中断或不中断),我想将其视为1次休息。同时请记住,如果一个发行版中断(而另一个发行版没有),我仍然希望将其记录为该国家/地区中断的1个站点。

EDIT3:我决定制作一个新表,它总结了每个站点的数据(每个站点可能有不止一次的分发)。然后我可以从中计算出全局的东西。

我带回家的消息:我认为当你在Excel公式中有很多级别的数据(例如国家,网站,某种子级别的分布)时,很难不总结中间数据要聚焦的分析级别的表。例如。在我的情况下,我对国家级分析感兴趣,这是分布级别之上的2“级别”。这意味着从站点级别的角度来看,数据会“重复”。您可能能够绕过这个,但我认为到目前为止更简单的解决方案是将其吸收并制作一个中间表。我确实缩短了你的公式。

我不认为这是一个解决方案,因为它不是我想要的。仍然愿意接受更好的建议,只允许使用公式......

档案:https://www.dropbox.com/sh/4ofctha6qhfgtqw/AAD0aPJXr__tononRTpKc1oka?dl=0

1 个答案:

答案 0 :(得分:0)

也许以下内容可以提供帮助。

首先,您筛选不符合分发条件的条目。

在第二步中,您将根据列siteid将表从A排序到Z.

然后在最后一次使用公式= C3<> C4之后添加一个额外的列,其中列C包含siteid条目。以这种方式,所有重复项都由辅助列中的FALSE值表示。

之后,您可以过滤此列中的FALSE值。

然后,您将获得唯一的网站ID。

如果我的问题出错了,我会很高兴为了帮助您而进行更新。