2012-07-26 60 views
1

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

查看下面我正在使用的示例数据。我在MATLAB中完成了它,但想在Excel中知道它。

Data Set in Excel

所以在例如上述数据,我想要得到的唯一值基于@safea的价值车道。所以如果@ safea = 102,那么泳道的唯一值=(2,3,1)。但是我想从这些数据集中获得最大数量的值。在这种情况下,它是2,因为2出现了5次,而3出现了一次,1出现只有1次。

又如:

如果我选择@safea为162,唯一值的车道则数字(5和4),但5想出了4倍和4已经拿出作为只有1次,因此我想要的最终答案是'5'。

回答

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价值你想要的模式,它会给你答案。

+0

上面的数据集是数字,并在单独的colums。它只是,我无法弄清楚如何格式化Excel表格时发布这个问题 – user1554940 2012-07-26 14:36:43

+0

哈哈我只是键入了一堆数据我自己。很高兴我能帮上忙! – jrad 2012-07-26 15:19:09

+0

@ user1554940我将其复制到excel中,并将文本用于带有空格分隔符的列,然后张贴了一张带有编辑的图片,然后John Conde帮助完成了更多的编辑/编辑操作。 (尼斯回答杰克)。哦,和user1554940,不要忘了给杰克一个upvote除了接受的答案 – 2012-07-26 15:22:20

1

你也可以使用该工作表函数来获得有条件MODE

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

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