1

我需要根据条件从大列中获取唯一数据集中出现次数最多的值。我只需要一个值而不是数组。

请参阅下面我正在使用的示例数据。我已经在 MATLAB 中完成了它,但想在 Excel 中知道它。

Excel 中的数据集

因此,例如在上面的数据中,我想根据@safea 的值获取车道的唯一值。因此,如果@safea=102,则车道的唯一值=(2,3,1)。但我想要这些数据集中出现最多次数的值。在这种情况下,它是 2,因为 2 出现了 5 次,而 3 出现了一次,而 1 只出现了 1 次。

另一个例子:

如果我选择@safea 作为 162,那么车道(5 和 4)中唯一值的数量,但 5 出现了 4 次,而 4 只出现了 1 次,所以我想要的最终答案是“5”。

4

2 回答 2

1

如果您不介意使用 VBA,我设计了一个函数,您可以根据需要使用它。鉴于 @safea 值在 A 列中,车道值在 B 列中,您可以使用以下命令:

Function MODEIF(criteria As Integer) As Integer
    Dim count As Integer
    count = Application.WorksheetFunction.CountA(Range("A:A"))
    Dim list() As Integer
    Dim size As Integer
    size = 0
    Do While count > 0
        If (Range("A" & count) = criteria) Then
            ReDim Preserve list(size)
            list(size) = Range("B" & count)
            size = size + 1
        End If
        count = count - 1
    Loop
    MODEIF = Application.WorksheetFunction.Mode(list)
End Function

只需将此函数放入模块中,转到电子表格,然后键入=MODEIF(102)或任何您想要该模式的 @safea 值,它就会给您答案。

于 2012-07-26T14:28:38.743 回答
1

您还可以使用此工作表函数来获得条件MODE

=MODE(IF(**your @safea value here**=$A$2:$A$22,$B$2:$B$22))

这是一个数组公式。按Ctrl+Shift+Enter(不仅仅是Enter)确认输入。

于 2012-07-26T22:42:14.000 回答