【问题标题】:Excel: Cannot average blanks determined by formulaExcel:无法平均由公式确定的空白
【发布时间】:2020-04-22 11:09:58
【问题描述】:

我在 B1:B10(值)和 C1:C10(字符串)中有一些我想要平均的数据。

我的价值观是(从第 1-10 行开始):

B | C
-----
1 | Approved
1 | Approved
1 | Approved
1 | Approved
  | N/A
  | N/A
  | N/A
1 | Approved
1 | Approved
0 | Disapproved

当我在 A1 中输入以下公式对 B 列中的数据进行平均时,我得到一个结果(0.857143),没问题:

=AVERAGE(B1,B2,B3,B4,B5,B6,B7,B8,B9,B10)

当我改为在 D1 中输入以下公式时,我得到一个#VALUE!而是错误,尽管据我所知,逻辑是相同的(用空格替换 N/A):

=AVERAGE(
IF(C1="Approved",1,IF(C1="Disapproved",0,IF(C1="N/A","",""))),
IF(C2="Approved",1,IF(C2="Disapproved",0,IF(C2="N/A","",""))),
IF(C3="Approved",1,IF(C3="Disapproved",0,IF(C3="N/A","",""))),
IF(C4="Approved",1,IF(C4="Disapproved",0,IF(C4="N/A","",""))),
IF(C5="Approved",1,IF(C5="Disapproved",0,IF(C5="N/A","",""))),
IF(C6="Approved",1,IF(C6="Disapproved",0,IF(C6="N/A","",""))),
IF(C7="Approved",1,IF(C7="Disapproved",0,IF(C7="N/A","",""))),
IF(C8="Approved",1,IF(C8="Disapproved",0,IF(C8="N/A","",""))),
IF(C9="Approved",1,IF(C9="Disapproved",0,IF(C9="N/A","",""))),
IF(C10="Approved",1,IF(C10="Disapproved",0,IF(C10="N/A","","")))
)

什么给出,我需要改变什么才能在 C 列中字符串值的公式中得到 0.857143?

还尝试使用 VALUE("") 和 VALUE(0) 更改 N/A 的“如果为真”和“如果为假”部分。使用 VALUE("") 它仍然会导致 #VALUE!错误,并且使用 VALUE(0) 它仍然将空白计入平均值,这是不希望的,因为我只想要 1 和 0 的平均值

附加信息:如果我将字符串的公式分开以在单独的行上评估每个字符串,然后在该范围内取平均值,它工作正常。虽然,考虑到数据集我正在使用它们,我不想将它们都单独添加,因为它会极大地混乱工作空间。

【问题讨论】:

  • 我相信您正在尝试从文本字符串中获取平均值。甚至"" 也被视为字符串。
  • @JvdV 是的,这是结果告诉我的。虽然不可能将引号删除为“空白”(这将给出完全无意义的结果),并且当尝试对空白结果使用 VALUE 函数时,它仍然会以相同的方式评估它。在字符串检查公式中分离检查时,然后平均范围之后,它工作正常。如果不可能将它们全部放在一个公式中,那就太棒了..

标签: excel excel-formula formula average


【解决方案1】:

AVERAGE 不适用于给定数字范围内的文本字符串。它可能会跳过空单元格(根据您的第一个示例),但在比较数字方程中的文本时肯定会出错(您的第二个示例)。所以试试这个:

=COUNTIF(C1:C10,"Approved")/SUM(COUNTIF(C1:C10,{"Approved","Disapproved"}))

这将使N/A 排除在外。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多