2016-07-18 3 views
-1
여기

내가이 firm_anamoly 열을 채우기 위해 Excel 수식 또는 VBA 스크립트 중 하나를 사용하려면 enter image description here
엑셀 에서 작동하도록 노력하고 샘플 데이터 세트의 스크린 샷입니다 (그것은 지금 수동으로 채워집니다).Excel 수식 또는 VBA 스크립트

로직은 주어진 회사 번호의 행 세트에 대해 해당 세트에 둘 이상의 "sector23code"가있는 경우 "firm_anamoly"열의 출력이 "firm_count"이어야하며 그렇지 않으면 "firm_anamoly"가 있어야합니다

firm_number = 5에서 볼 수 있듯이 sector23 코드는 모두 3과 5이므로 firm_anamoly는 3으로 설정됩니다 (예 : firm_count).

나는 내가 작업하려고하는 약 500K 행의 데이터를 가지고있다.

감사합니다.

+1

잠재적으로 악의적 인 사이트/파일에 연결하는 대신 수행하려는 작업의 스크린 샷 (또는 데이터 복사/붙여 넣기가 가능)을 게시 할 수 있습니까? 나는 (그리고 나는 다른 사람들이) 매크로/코드가 관련된 곳에서 임의의 파일을 온라인으로 다운로드하는 것을 주저한다. 또한, 지금까지 시도한 것을 게시하고 [질문하는 방법]을 참조하십시오. – BruceWayne

+0

@ BruceWayne 의견을 높이 평가하십시오. – Raj

답변

1

이 문제를 해결할 수있는 방법은 2 가지가 있습니다. 한 가지 방법은 범위를 표 형식으로 변환하지 않고 수행하는 것입니다.

방법 1 : {= IF (AND IFNA IF (A2 = $ A : $ A, $ B : $ B, NA()) = B2, TRUE 셀 D2에이 수식을 입력 할 수 있습니다.)), 0, C2)}

이것은 내가 믿기를 원하는 결과를 얻지 만 강력한 시스템보다 성능이 떨어지면 Excel을 압도 할 것입니다.

가장 좋습니다 방법 2 : 범위를 Excel 테이블로 변환하십시오. 그런 다음 'firm_anomoly'열의 첫 번째 행에이 수식을 입력하십시오. {= IF (AND IFNA [IF @ [firm_number] = [firm_number], [sector23code], NA()) = [@ sector23code] , 0, [@ [firm_count]])}

이 버전이 모두있는 배열 수식의 예를 훨씬 더 효율적으로 방법 1보다

실행)), TRUE 그래서 당신은 그들을 Ctrl 키를 누르 입력 할 때 + shift + enter를 입력하면 중괄호가 표시됩니다. 데이터가 너무 많으므로이 수식을 입력하기 전에 확실히 백업해야합니다. 대용량 데이터 세트의 배열 수식을 사용하면 Excel이 손상 될 수 있습니다.

+0

응답 해 주셔서 감사합니다. 그러나 솔루션을 작동시킬 수 없습니다. 그러나 수식은 "잘못된 이름 오류"를 반환합니다. – Raj

+0

어느 것을 사용하셨습니까? – NPComplete

+0

나는 둘 다 시도했다. – Raj