2014-09-22 3 views
1
A    B C  D  E F G H 
ACC'L SCIENCE 0.5 TRUE 557092 87 87  
ACC'L SCIENCE 0.5 TRUE 557092   88 88 
ART    0.5 TRUE 557092 98 98  
ENGLISH 6  0.5 TRUE 557092 88 88  
ENGLISH 6  0.5 TRUE 557092   87 87 
GIRLS PE  0.5 TRUE 557092 100 100  
GIRLS PE  0.5 TRUE 557092   94 94 

위의 7 행은 Excel 파일에 있습니다. 연속 열의 값이 같은지 확인하려면 하나의 행에 병합해야합니다. 내가 시도하고있어 공식은 다음과 같은 데이터를 생성 할Excel에서 행 병합

A    B C  D  E F G H 
ACC'L SCIENCE 0.5 TRUE 557092 87 87 88 88 
ART    0.5 TRUE 557092 98 98  
ENGLISH 6  0.5 TRUE 557092 88 88 87 87 
GIRLS PE  0.5 TRUE 557092 100 100 94 94 

의사 코드 같은 것을 보일 것이다 : 다음 또한 라인을 설명하기 위해 내가 가진

=IF(A1 = A2),--> G1,H1 = G2, H2 

건너 뜁니다 - 아트 클래스 등이. 제약 조건을 확인하기 위해 이와 같은 'IF'문을 사용하면 효율적인 방법이 될까요?

IF의 문제는 실제로 병합을 원하는 경우 부울을 반환하는 것 같습니다. 이 작업을 수행하기위한 매끄러운 VBA가 아닌 방법이 있습니까? 비슷한 데이터를 가진 좋은 VBA 옵션을 찾았습니다.하지만이를 없애 버리지 않는 방법이있을 것 같습니다. MATCH 및 INDEX에 대해 알고 있지만 병합하는 방법을 찾지 못했습니다.

배열 일치 MATEX - INDEX 수식을 시도했지만 홀수 값을 반환했습니다. 데이터를 엉망이 아닌 새 열을 삽입했습니다. 기본적으로 숫자를 단일 행으로 병합하려고했습니다.

MATCH($A$2:$A$7, INDEX(E2 & F2, $G$2:$G$7 & $H$2:$H$7)) 

일부 파이썬을 작성했지만 꽤 능숙 해졌습니다. 올바른 방향으로 어떤 포인터, 나는 감사하겠습니다.

+0

내가 알 수있는 것부터 중복 제거는 행을 삭제하지만 기본적으로 행의 끝에 데이터를 유지하고 병합해야합니다. A 열에 중복 제거를 수행하면 행 2, 5 및 7의 모든 데이터가 완전히 삭제되지 않습니까? – Joe

+0

"위의 7 개 열이 Excel 파일에 있습니다. 연속 열의 값이 같은지 확인하려면 한 행에 병합해야합니다." 난 당신이 "나는 위의 7 ** 행 ** 엑셀 파일에 의미가 있다고 생각합니다. ** 연속 ** 행 ** 같은 값을 가지고 있는지 확인하려고, 그들은 한 행에 병합해야합니다." –

+0

어떤 열을 동일한 값으로 검사해야합니까? A 열 또는 A 열, B 열, C 열 및 D 열 모두? –

답변

1

나는이보다이 작업을 수행하는 아마 쉬운 방법이 있다고 생각하지만, 내 첫번째 생각은 2 단계 과정이 될 것입니다 : 세포 I1에서

말하자면, 다음과 같은 공식에 넣어 :

=IFERROR(INDEX(A$1:A$7,MATCH(1,(--($A$1:$A$7=$A1))*(--(A$1:A$7<>"")),0)),"") 

과는 +

,174,515 입력 CTRL + 시프트를 눌러 배열 수식로 입력

그런 다음 필요에 따라이 값을 아래로 드래그 할 수 있습니다.

는 (이 공식은 기본적으로 열에서 중시하는 경기로 너무 오래 그것과 함께 최초의 비 빈 행의 값을 끌어 것을 말하고있다.)

을 지금, 당신은 복사 할 수, 특수> 값을 붙여 넣기 Data>Remove Duplicates을 사용하여 중복 행을 제거하십시오.

내가 말했듯이, t는 아마도 가장 우아한 해결책은 아니지만 트릭을해야합니다 !!

희망하는 것이 도움이됩니다!

UPDATE :


에 맞게 두 열 A와 D를 필요로의 댓글이 공식 시도 감안할하십시오으로 다음 D와 A, 소계으로 분류하면

=IFERROR(INDEX(A$1:A$7,MATCH(1,(--($A$1:$A$7=$A1))*(--($D$1:$D$7=$D1))*(--(A$1:A$7<>"")),0)),"") 
+1

더 잘 설명해야하지만 - 열 A, 또한 열 D에 대해 - 수식을 다시 정렬하려고 시도했습니다. - 닫았지만 행 1의 내용으로 행 2-7을 덮어 쓰고있었습니다. – Joe

+0

@Joe, 그래서 열 A와 D 모두 시합? ... 지금 공식을 업데이트하겠습니다 ... –

+0

도움을 주셔서 감사합니다. - 그들은 일치하지 않습니다. 열 A는 클래스 이름이고, 열 D는 학생 번호입니다. 완전히 다른 필드입니다. 클래스가 동일 할뿐만 아니라 학생도 똑같은지 확인하기위한 추가 검사입니다. – Joe

1

을 작은 바이올린이 적합 할 수 있습니다. A. 필터의 각 변경에 대해 E, F, G 및 H의 합계를 사용하고 A 포함 ... Total을 선택합니다.x이 현재 행 번호보다 하나 작은 B에서 =Bx 인 첫 번째 가시가 아닌 비어있는 행을 채 웁니다. D에 가로 질러 복사하고 아래로 내려 가면됩니다. 필터링을 해제하고 상단의 모든 복사, 붙여 넣기 특수 값을 선택하십시오. A 포함 안 함 ... Total을 선택하고 표시되는 모든 제외 헤더를 삭제하십시오. ColumnA에 Total을 바꾸십시오.

+1

아주 멋진 아이디어! +1 –