在excel枢轴表中计数唯一值

nr7wwzry  于 2023-06-25  发布在  其他
关注(0)|答案(3)|浏览(130)

Excel表包含服务组件关闭时的信息。因此,服务[列A](MyService)有许多组件[列B](component-1,component-2,component-3)。每一行表示一个组件关闭了5分钟[一天中的时间]。其他列用于过滤器等。
当任何选定的组件(component-1、component-2)关闭时,服务被视为关闭。因此,总的不可用时间被认为是5分钟,即使当组件1和组件2同时停机时也是如此。因此,当更多组件因服务而停机时,不可用性不会成倍增加。
我们想知道一项服务(作为一系列选定的组件)每天有多少时间不可用。我们使用一个pivotal table。行中是组件。列中是时间。这些行将汇总到一天级别。

对于6月12日,当天的总不可用时间应为2(而不是3)。所以,这将是:

那么,如何“总结”每天服务的不可用性,而不会使同一时刻不同组件的不可用性加倍呢?

Try-2:我尝试在Pivotal表中使用'max'。然后,针对一天中的时间的列的“摘要”是可以的,但是然后摘要是针对一天的所有列的最大值,即1.唉。
Try-3:本质上每天的值应该是不同时间的天数!或每天不同时间列的数量。我怎么能在一天内显示这个数字呢?

xqkwcwgp

xqkwcwgp1#

如果无法将帮助列插入到现有表中,可以执行以下步骤。
如果您使用的是Excel 2013及更高版本,当您第一次插入数据透视表时,应该有一个**add data to data model**的选项,这将是对话框中的最后一个选项,如下图所示。

之后,只需像往常一样继续数据透视表插入过程,并按照您的问题中所示构建数据透视表。
现在您只需在【值】面板下选择【非重复计数】作为【值字段设置】即可。

我认为您使用的Excel版本高于或等于2013(从您的屏幕截图猜测)。
如果您的版本低于此版本,例如2010,则需要安装PowerPivot Addin(可从MS网站下载)。
安装后,您只需通过选项->加载项->管理(COM加载项)->转到->勾选PowerPivot并确定来激活加载项。
然后将数据导入PowerPivot并执行常规步骤。
使用PowerPivot进行此操作非常简单(PowerPivot将结果数据透视表插入到.xlsx中,修改后的数据完好无损),但如果您需要帮助,请告诉我,我将通过屏幕截图概述步骤。

sulc1iza

sulc1iza2#

所以,如果范围内的任何值都是1,则得到1:

=if(countif(range,"="&1)>=1,1,0)

或者,测试是否等于或大于1:

=if(countif(range,">="&1)>=1,1,0)
7hiiyaii

7hiiyaii3#

如果允许添加helper列,可以这样做:

在本例中,helper列在单元格J6中使用以下公式:
=IF(SUM(IF($A$1:A5 & $C$1:C5 = A6 & C6,1,0))>0,0,1)

基本上,该公式正在寻找Service(Col A)和UnavailableFor5Min(Col C)的任何先前组合,并且如果它找到一个,则它认为它不是此时对于该相同服务不可用的第一个不可用组件,因此它将返回零。否则,它将返回一个。
然后,通过使用该变量的Sum作为数据透视表的Values,可以避免重复计算。
更多关于公式来源的解释:
这个公式是一个数组公式,因为比较$A$1:A5 & $C$1:C5 = A6 & C6是按元素执行的,并返回一个包含truefalse值的数组,$A$1:A5 & $C$1:C5中的每一行对应一个值,这个IF($A$1:A5 & $C$1:C5 = A6 & C6,1,0)中的IF将这个数组更改为0s1s的数组。对于SUM,我们确保所有的值都是0,只有这样我们才返回1

相关问题