首页 文章

计算同一列中单元格之间相同文本值的标准差

提问于
浏览
1

最近几天我一直试图在Excel中创建一个宏,它可以计算标准偏差,它将从A列中不同单元格之间的相同文本值的B列中获取值,并在C列中的相应单元格中给出结果 . 在我的工作表中A列中有许多不同的文本值,B列中有相应的值 . 我想从列A中相应文本的第一行到最后一行获取B列的所有值,并计算这些值的标准偏差并显示列C列 .

例如,当它从第一个单元格(aass)开始时,它必须计算所有 aass 并在计算标准偏差之后从列B的相应单元格中取值 . 请帮帮我 . 我很高兴收到你们的来信 . 我试图展示我的表格如何如下所示:

column A  column B  column C
text       value    result(standard deviation)
aass       112      35.16
aadd       243      12.9
ffdd       523      108.55
aass       198      35.16
aadd       252      12.9
aass       136      35.16
ffdd       342      108.55
ffdd       312      108.55
aadd       222      12.9
aadd       255      12.9
ffdd       322      108.55
aass       112      35.16
jjhgf      487      25.8
pouwe      565      6
jjhgf      451      25.8
jjhgf      424      25.8
qwert      643      0
pouwe      553      5
qwert      643      0
.....      ....    ...
.....      ....    ...

2 回答

  • 1

    我将通过带有结构化引用的表向您展示我的意思 . 我复制了 textvalue 列的数据 . 我还添加了 Headers : Result 到单元格 C1 .

    然后,我从“插入”功能区中选择“表”选项(在“表”选项卡上)

    Insert Table

    然后我在 C2 中输入此公式作为数组公式,通过在按Enter键时按住ctrl shift确认它

    =STDEVP(IF(Table1[[#This Row],[text]]=[text],[value],""))
    

    Excel自动将该公式复制到最后一行并生成请求的结果 . 如果现在添加一行,表格将扩展(包括公式) . 您还可以添加具有不同公式的列 .

    在上面的公式中, Table1[[#This Row],[text]] 仅在包含公式的行上引用文本列的上下文,而 [text] 本身引用整个文本列; [value] 指整个值列 .

    自动扩展以及使用实际列标签的能力是Excel表格和结构化引用的理想特征 . 它类似于具有动态命名范围,但更容易实现 .

    enter image description here

  • 0

    这是我在没有VBA的情况下使用的 . 这是一个数组公式(使用Ctrl Shift Enter输入),它位于单元格C1中:

    =STDEV(IF($A$1:$A$9=A1,$B$1:$B$9))
    

    (在我的示例文件中,我只有9行数据 . )

    在较新版本的Excel中,您可以使用:

    =STDEV.S(IF($A$1:$A$9=A1,$B$1:$B$9))
    

    对于整个 population 使用此:

    =STDEVP(IF($A$1:$A$9=A1,$B$1:$B$9))
    

    要么

    =STDEV.P(IF($A$1:$A$9=A1,$B$1:$B$9))
    

    以下版本将是MUCH SLOWER:

    =STDEV(IF(A:A=A1,B:B))=STDEV.S(IF(A:A=A1,B:B))

    =STDEVP(IF(A:A=A1,B:B))=STDEV.P(IF(A:A=A1,B:B)) .

    enter image description here

相关问题