问题:给定交易列表,我必须按类型以及所有交易生成箱形图。
背景:我正在使用Excel 2016。
我有一张桌子,上面有被审计方提供的数据。
我必须创建一个Excel工作表,该工作表将允许我生成类似于Peltier使用的方法(https://peltiertech.com/excel-box-and-whisker-diagrams-box-plots/)的箱形图所需的值,而无需修改被审核方提供的数据(不进行排序,不进行任何修改)受审核方提供了数据,以防审核被用于行政程序中
Image of Faux Transaction File
文件显示:
我已经命名了以下命名字段,以简单地输入公式并使审核公式更容易:
我需要为所有交易以及按交易生成以下Salesprice值:平均值,标准偏差,最小值,第一四分位数,中位数,第三四分位数,最大值和四分位数范围(第一四分位数与第三四分位数之间的差)类型类别(列表,销售和双重代理)。
获得所有交易所需的价值相对容易。我的问题是何时必须按事务类型细分事物。
我目前正在使用以下公式来命名定义动态字段的范围:
ClosingDate = Offset($A$2,0,0,Counta($A:$A),1)
SalesPrice = Offset($C$2,0,0,Counta($C:$C),1)
TransactionType = Offset($D$2,0,0,Counta($D:$D),1)
ListingAgent = Offset($E$2,0,0,Counta($E:$E,1)
SellingAgent = Offset($F$2,0,0,Counta($F:$F,1)
这是我尝试结合这些动态字段,if函数和适当的函数来生成用于显示清单交易的箱形图数据的数据:
COUNT: =Countif(TransactionType,"Listing")
SUM: =Sumif(TransactionType,"Listing",SalesPrice)
MEAN: =Averageif(TransactionType,"Listing",SalesPrice)
STDEV: =Stdev(If(TransactionType="Listing",SalesPrice))
MIN: =Min(If(TransactionType="Listing",SalesPrice))
1ST Q: =Quartile(If(TransactionType="Listing",SalesPrice),1)
MEADIAN: =Median(If(TransactionType="Listing",SalesPrice))
3RD Q: =Quartile(If(TransactionType="Listing",SalesPrice),3)
MAX: =Max(If(TransactionType="Listing",SalesPrice))
但是对于除Count,Sum和Mean之外的所有内容,我都会出错,并且excel的输出与我手工生成的答案不匹配。
这是我的StatAnalysis工作表上的输出副本,并带有公式
Statistics Output Statistics Output with formulas
由于我使用的数据是机密的,因此我无法共享使用的源文件。但是,为了帮助您直观地看到我所做的事情,我生成了一个仿制的交易文件,该文件模拟了我正在使用的文件(所有内容都完全相同,只是名称,日期和地址是为了保护身份而进行的更改)。>
答案 0 :(得分:0)
在倒数第二个括号放在错误位置的两个命名范围公式中,您有误:
ListingAgent = Offset($E$2,0,0,Counta($E:$E),1)
SellingAgent = Offset($F$2,0,0,Counta($F:$F),1)
此外,请务必使用条件条件将这些条件If公式作为数组公式使用 Ctrl + Shift + Enter
例如
=STDEV(IF(TransactionType="Listing",SalesPrice))
作为数组公式输入时,应该出现在{}
周围。
对于中位数和四分位数,您还可以使用AGGREGATE函数来处理数组,还可以指定其他参数(例如6)来忽略错误值。这不需要使用 Ctrl + Shift + Enter
输入例如使用四分位数函数参数降低四分位数,并忽略错误值参数:
=AGGREGATE(17,6,SalesPrice/(TransactionType="Listing"),1)
例如中位数:
=AGGREGATE(16,6,SalesPrice/(TransactionType="Listing"),0.5)
感谢@BarryHoudini展示了如何完成最后的操作。