我无法根据过滤后的数据计算频率(以便绘制直方图)。
目前,在 Sheet1 上我有十个温度的数据和一个过滤器,我为每个温度分配了一个名称,该名称涵盖了所有范围(例如,名称 Temperature1 取自 Sheet1!A:A)。
在 Sheet2 上,用户选择一个指定的名称(例如,Temperature1),然后计算最大值、最小值、间隔、频率并绘制直方图。我现在计算频率的方法是使用 {=FREQUENCY(INDIRECT(Temperature1);A2:A13)}
其中 A2:A13 是我之前计算的间隔。
使用函数“SUBTOTAL”=SUBTOTAL(1;INDIRECT(Temperature1)),我设法仅获取已过滤(可见)单元格的平均值、最大值、最小值等。但找不到频率的类似函数。我的老板不允许我将宏与 vba 一起使用。有方法或解决方法吗?
谢谢
答案1
按照你的思路:根据你的数据创建一个数据透视表并过滤该表。然后根据该数据计算直方图,而不是根据原始数据计算直方图。
我认为实现此目的的更好、更可靠的方法是BIN
向原始数据表添加一列,在其中计算间隔。例如,如果您的温度在 12.0 到 23.4 度之间,并且您喜欢 2 度间隔,则添加一个带有公式的列ROUND([@Temperature]/2)*2
。接下来,创建一个数据透视表,BIN
其中列中的值和数据透视表值中的频率。这样,您就可以过滤数据透视表中的值REPORT FILTER
。这也使绘图变得简单,因为 Excel 可以轻松地基于数据透视表创建图形。
您甚至可以根据BIN
一个参数(例如,箱子的数量)来创建这个字段,从而使其更加灵活(但会增加一些复杂性)。