如何在Excel中计算存储在单个单元格中的数组的模式?

时间:2019-03-02 02:02:17

标签: excel vba excel-formula

我是excel的新手,试图计算数组的模式,但是该数组存储在单个单元格中。 例如,我将一个数组(0,1,2,3,4,2,3,3,4)存储到单元格A1中,并尝试查找该数组的模式。我尝试了MODE(A1)函数,但似乎不起作用。有什么好的建议吗?我听说可以通过VBA来实现,但是我是个无与伦比的专家,有没有很好的简单教程可以实现此目标?感谢有人可以帮助您,谢谢:)

2 个答案:

答案 0 :(得分:3)

有一个名为Evaluate的秘密函数,它可以采用由串联字符串构造的公式,并产生与工作表上使用的公式等效的结果。

在您的情况下,您想构建一个公式,将带分隔符的数字字符串视为实数数组,以便目标看起来像这样。

=MODE(0,1,2,3,4,2,3,3,4)

用户定义的功能可以将此功能带到工作表中。

Option Explicit

Function arrayMode(str As String)

    arrayMode = Application.Evaluate("MODE(" & str & ")")

End Function

enter image description here

还可以通过“定义的名称”访问评估。选择B2,然后选择“公式”,“定义名称”,“定义名称”。给它起一个名字(例如ARRMODE),并使用以下引用:

=Evaluate("MODE("&$A2&")")

enter image description here

单击确定。

像工作表函数一样使用ARRMODE。内置对同一行A列中单元格的引用。

=ARRMODE

enter image description here

答案 1 :(得分:0)

A2 中输入:

=IFERROR(--TRIM(MID(SUBSTITUTE($A1,",",REPT(" ",999)),COLUMNS($A:A)*999-998,999)),"")

并复制。然后在 A3 中输入:

=MODE(2:2)

enter image description here

(您可以通过使用EVALUATE()函数来避免使用所有“辅助”单元格)