Excel 中值/平均值不返回正确的值
我正在努力实现以下目标: 如果(在列表1中找到单元格A1),对于找到它的每一行和Excel 中值/平均值不返回正确的值,excel,excel-formula,excel-2010,excel-2007,excel-2013,Excel,Excel Formula,Excel 2010,Excel 2007,Excel 2013,我正在努力实现以下目标: 如果(在列表1中找到单元格A1),对于找到它的每一行和if(C4:C10>B4:B10),则中值(对于每个有文本1的行,C和B值之间的减法) 我尝试了两种不同的公式: 1-{=MEDIAN(如果(和((C4:C10>B4:B10);(B4:B10=A1));(C4:C10-B4:B10))} 2-{=中值((C4:C10>B4:B10)*(B4:B10=A1)*(C4:C10-B4:B10)) 对于中值,它总是返回0;对于不准确的平均值,它总是返回很小的值。我确信中位数
if(C4:C10>B4:B10)
,则中值(对于每个有文本1的行,C和B值之间的减法)
我尝试了两种不同的公式:
1-{=MEDIAN(如果(和((C4:C10>B4:B10);(B4:B10=A1));(C4:C10-B4:B10))}
2-{=中值((C4:C10>B4:B10)*(B4:B10=A1)*(C4:C10-B4:B10))
对于中值,它总是返回0;对于不准确的平均值,它总是返回很小的值。我确信中位数和平均数是不正确的
问题是什么
此外,我将如何使用以下内容:
{=MEDIAN((C4:C10>B4:B10)*(B4:B10=A1)*(C4:C10-B4:B10))
如果其中一列的某些行中有文本?(前一个问题并非如此,但它以前就出现过)。假设
列C
即列表3中的值大于列B
即列表2中的值,则可以使用以下公式:=MEDIAN(IF((A4:A10=A1)*(C4:C10>B4:B10);C4:C10-B4:B10))
这是一个数组公式,请按ctrl+shift+enter来计算公式。
如果不起作用,请告诉我。假设
列C
即列表3中的值大于列B
即列表2中的值,则可以使用以下公式:=MEDIAN(IF((A4:A10=A1)*(C4:C10>B4:B10);C4:C10-B4:B10))
这是一个数组公式,请按ctrl+shift+enter来计算公式。
如果不起作用,请告诉我。您不能在这些类型的公式中使用
和函数,因为和返回的结果(TRUE
或FALSE
)不是所需的数组
您的第二个公式更接近,但通过将所有条件相乘,您将得到不满足条件的每一行的零,从而扭曲结果
您可以使用以下类似版本之一:
=中值(如果((C4:C10>B4:B10)*(A4:A10=A1);C4:C10-B4:B10))
=中值(如果(C4:C10>B4:B10;如果(A4:A10=A1;C4:C10-B4:B10))
两者都需要通过CTRL+SHIFT+ENTER进行确认
要处理列B
或C
中的文本(并使公式忽略这些行,但在其他情况下有效),可以添加一个额外的IF
函数,如下所示
=中值(如果(C4:C10>B4:B10;如果(A4:A10=A1;如果(ISNUMBER(C4:C10-B4:B10);C4:C10-B4:B10)))
使用平均值
函数代替中值
另一种在忽略文本的情况下获取中值的方法是使用AGGREGATE
函数,如下所示:
=骨料(17;6;C4:C10-B4:B10/(C4:C10>B4:B10)/(A4:A10=A1);2)
这不需要“数组条目”,但只适用于Excel2010
或更高版本。AVERAGE
17
表示四分位数
函数-第二个四分位数等于中值
请参阅随附的屏幕截图,该截图用示例数据演示了最后两个公式……以及一些添加的文本
您不能在这些类型的公式中使用和函数,因为和返回单个结果(TRUE
或FALSE
)而不是需要的数组
您的第二个公式更接近,但通过将所有条件相乘,您将得到不满足条件的每一行的零,从而扭曲结果
您可以使用以下类似版本之一:
=中值(如果((C4:C10>B4:B10)*(A4:A10=A1);C4:C10-B4:B10))
=中值(如果(C4:C10>B4:B10;如果(A4:A10=A1;C4:C10-B4:B10))
两者都需要通过CTRL+SHIFT+ENTER进行确认
要处理列B
或C
中的文本(并使公式忽略这些行,但在其他情况下有效),可以添加一个额外的IF
函数,如下所示
=中值(如果(C4:C10>B4:B10;如果(A4:A10=A1;如果(ISNUMBER(C4:C10-B4:B10);C4:C10-B4:B10)))
使用平均值
函数代替中值
另一种在忽略文本的情况下获取中值的方法是使用AGGREGATE
函数,如下所示:
=骨料(17;6;C4:C10-B4:B10/(C4:C10>B4:B10)/(A4:A10=A1);2)
这不需要“数组条目”,但只适用于Excel2010
或更高版本。AVERAGE
17
表示四分位数
函数-第二个四分位数等于中值
请参阅随附的屏幕截图,该截图用示例数据演示了最后两个公式……以及一些添加的文本
但在您的示例中,C中的值没有一个大于B中的值。我遗漏了什么吗?它不符合你的第二个标准!但在你的例子中,C中的值没有一个比B中的值大。我遗漏了什么吗?它不符合你的第二个标准!你不是把B列和A列混淆了吗?A列包含需要匹配A1而不是B列的文本值。因此,在公式中,它们应该替换为A4:A10=A11。我只是使用问题中公式中使用的相同单元格引用。是的,但问题中的公式是错误的!这是问题原文中的一个错误。应该予以纠正。此外,单元格不能有一个文本值与A1的文本值匹配,同时也不能被减去!工作很好,谢谢你的详细解释!我基本上必须合并我尝试过的两个函数,看起来,阿哈伦,你不是把B列和A列混淆了吗?A列包含需要匹配A1而不是B列的文本值。因此,在公式中,它们应该替换为A4:A10=A11。我只是使用问题中公式中使用的相同单元格引用。是,但是