2012-07-26 8 views
1

조건에 따라 큰 열의 고유 데이터 집합에 최대 발생 횟수가있는 값을 가져와야합니다. 배열 하나가 아니라 값 하나만 있으면됩니다.Excel의 고유 값

아래의 예제 데이터를 참조하십시오. 나는 그것을 MATLAB에서했지만 엑셀에서 그것을 알고 싶다.

Data Set in Excel

그래서 예를 들어 위의 데이터에서, 나는 @safea의 값에 따라 차선의 고유 값을 얻을 싶어요. 따라서 @ safea = 102이면 차선의 고유 값 = (2,3,1). 하지만 최대 데이터 발생 수를 가진 이러한 데이터 집합의 값을 원합니다. 이 경우에는 2가 5 번 나오고 3 번이 한 번 나오고 1 번이 한 번 올랐기 때문에 2 번입니다.

다른 예 : I (162)로 @safea 선택하면

다음 레인에서 고유 값의 개수 (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 

그냥 스프레드 시트로 이동합니다 모듈이 기능을 넣어 어떤 @safea =MODEIF(102) 또는 입력 당신이 원하는 모드의 값을 입력하면 답이 나옵니다.

+0

위의 데이터 세트는 숫자이며 별도의 열로되어 있습니다. 그것의 단지 내가이 질문을 게시하는 동안 엑셀 테이블을 포맷하는 방법을 알아낼 수 없었다 – user1554940

+0

하하 그냥 데이터를 잔뜩 입력했습니다. 다행스럽게 도울 수있어! – jrad

+0

@ user1554940 엑셀에 복사 한 후 공백 구분 기호가있는 열의 텍스트를 사용하여 편집 한 그림을 게시 한 다음 John Conde가 편집/편집 승인에 도움을주었습니다. (좋은 답변 잭). 오, 그리고 user1554940, 받아 들여진 대답 이외에 잭에게 upvote를주는 것을 잊지 마세요 –

1

는 또한 조건부 MODE 얻을이 워크 시트 기능을 사용할 수

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

이것은 배열 수식입니다. Ctrl+Shift+Enter (Enter 제외)을 눌러 항목을 확인하십시오.