2013-09-02 3 views
1

다른 열이 주어진 경우 한 열의 모드 (most occurrent) 값을 찾으려고합니다.Excel에서 조건부 모드를 효율적으로 얻으십시오.

계산 방법은 여러 분이 소요되며 Excel이 응답하지 않을 수 있습니다. 그러므로 나는 더 나은 길을 찾고 있습니다.


group | Level 
1  D 
1  A 
1.1  B 
1  C 
1  A 
1  E 

가 그럼 난 출력은 다음과 같이 할처럼 내 데이터가 보이는 가정 : 데이터를 가정

group | LevelMode 
1  A 
1.1  B 

이의 왼쪽 상단 모서리에 워크 시트에서 C 열을 따라이 수식을 사용하고 있습니다.

=COUNTIFS(A:A;A2;B:B;B2)/COUNTIF(A:A;A2) 

이렇게하면 그룹 내 값의 비율을 알 수 있습니다. 이후에 0.5 이상이 아닌 중복 된 것을 모두 제거하여 각 그룹에 대한 모드를 제공합니다.

이 공식은 내가 원했던 것이지만, 약 50000 라인의 경우 너무 많은 자원이 필요합니다. 피벗 테이블 옵션에서 또는 온라인에서 빠른 검색을 수행 할 것으로 예상했지만 목표 달성을위한 방법을 찾지 못했습니다.

나는 꽤 괜찮은 하드웨어, 아주 최근 버전의 Excel을 가지고 있으며 매크로없이 이것을하는 것이 좋습니다. 그러나 이것을 달성하기 위해 매크로가 필요한 경우 그렇게하십시오.

답변

2

이 시도 :

1 단계

RowLabels "그룹"과 그 "수준"에서 피벗 테이블과 장소를 만듭니다. 이제 "값"필드에 "레벨"을 넣습니다. 2.

단계는 아래 그림을 참조하십시오. "레벨"의 오른쪽에있는 검은 색 화살표를 클릭하십시오 (그림에서 볼 수는 없지만 빨간색 원 안에 있어야 함). "값 필터"를 선택한 다음 "상위 10"을 선택한 다음 숫자를 1 (최상위 1)로 설정하십시오. 끝난!!

주의 : "레벨"에 대해 2 단계를 수행해야합니다. "그룹"과 동일한 작업을 수행하면 작동하지 않습니다.

enter image description here

편집 :이 결과를 어떻게 피벗 테이블과 같아야합니다.이제

enter image description here

원하는 형식으로 출력 모양을 : 피벗 테이블 도구에서

  1. > 디자인을 표 형식으로
  2. 해제 합계와 소계
를 보고서 레이아웃을 설정

기본 설정을 사용하면 그룹 및 레벨 모드 목록을 쉽게 복사 할 수 있습니다.

+0

그것은 유망스럽게 보였지만 아직 두 가지로 보일 수 없습니다. 아마도 상위 정의가 그룹화 전에 계산되었거나 문자에 상위가 없기 때문일 수 있습니다. –

+0

이 필드는 값 필드에 따라 순위가 매겨지며,이 경우 각 그룹 내의 "레벨"에 대한 개수가 계산됩니다. 이것은 당신이 "수준"에 의해서만 순위를 매길 필요가있는 이유입니다. "그룹"으로 순위를 매기면 관측치가 거의없는 그룹이 제거됩니다. 네가 준 모범을 보면서 나를 위해 일했다. 피벗 테이블을 설정하는 방법이 명확 했습니까? RowLabels = Group -> Level 및 Values ​​= Count Level. 나는 해답을 그림으로 업데이트 할 것이다. 작동하는지 알려주세요. 감사합니다 –

+1

와우,이게 내가 전에 시도한 것이라고 생각했지만, 다시 시도해 볼 때 성공을 달성했습니다! 나중에 참조 할 때 원하는 모양으로 출력을 얻는 방법에 대한 마지막 비트로 응답을 업데이트 할 것입니다. 고맙습니다! –

관련 문제