【问题标题】:excel combining if statement and stdevexcel结合if语句和stdev
【发布时间】:2018-08-20 01:32:25
【问题描述】:

问题:给定交易列表,我必须按类型为交易以及所有交易生成箱线图。

背景:我正在使用 Excel 2016。

我有一张表格,里面填满了被审核方提供的数据。

我必须创建一个 Excel 工作表,它允许我生成生成箱线图所需的值,类似于 Peltier 使用的方法 (https://peltiertech.com/excel-box-and-whisker-diagrams-box-plots/),而无需修改受审核方提供的数据(不允许排序,不允许修改受审核方提供的数据)数据以防审计被用于行政程序)

Image of Faux Transaction File

文件显示:

  • 截止日期(A 栏);
  • 物业地址(B列);
  • 销售价格(C 列);
  • 交易类型(D 列):上市、销售或双重代理[使用数据验证和下拉列表来控制条目]
  • 上市代理(E栏);和
  • 销售代理(F 栏)。

我已命名以下命名字段以简化公式输入并更轻松地审核我的公式:

  • 截止日期
  • 销售价格
  • 交易类型
  • 上市代理
  • 销售代理

我需要为所有交易以及交易生成以下值:平均值、标准偏差、最小值、第一个四分位数、中位数、第三个四分位数、最大值和四分位间距(第一个和第三个四分位数之间的差异)类型类别(列表、销售和双重代理)。

获取所有交易所需的值相对容易。我的问题是当我必须按交易类型分解事情时。

我目前正在使用以下公式来命名我的动态字段的范围:

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

由于我使用的数据是机密的,因此我无法共享我使用的源文件。但是,为了帮助您直观地了解我所做的事情,我生成了一个虚假的交易文件来模拟我正在使用的东西(一切都完全相同,只是名称、日期和地址是为了保护身份而进行的更改)。

【问题讨论】:

    标签: excel excel-formula


    【解决方案1】:

    您在两个命名范围公式中存在错误,其中倒数第二个括号位于错误的位置:

    ListingAgent = Offset($E$2,0,0,Counta($E:$E),1)
    SellingAgent = Offset($F$2,0,0,Counta($F:$F),1)
    

    此外,请务必使用 Ctrl+Shift+Enter

    将这些条件 If 公式作为数组公式输入

    例如

    =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 展示了如何做最后的那些。

    【讨论】:

    • 还有反馈吗?
    猜你喜欢
    • 1970-01-01
    • 2019-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    相关资源
    最近更新 更多