2014-11-06 2 views
-1

그래서 제가 작성한이 매크로의 깊이가 있습니다. 제 동료들은 원래 출력했던 것보다 많은 출력을 요구하고 있습니다. 나는 다음을 할 수있는 매크로가 필요하다. 그래서 내가 가지고있는 질문은 일반적으로 VLOOKUP으로 해결할 수 있습니다. 그러나이 경우 VLOOKUP을 쓸모 없게 만드는 두 가지 대답이 있고 둘 다 무엇인지 알면 매우 중요합니다. 그래서 두 개의 기둥이 있다고 가정 해 봅시다. 하나는 Run #이고 다른 하나는 Vertical, Curve 또는 Lateral (열 순서대로 진행)입니다. Run # 1이 Vertical이라고 가정 해 보겠습니다. 실행 # 2는 수직으로 시작했지만 곡선을 완성했습니다. 실행 # 3은 곡선이지만 측면을 마칩니다. 마지막으로 실행 # 4는 측면입니다. 예 :데이터를 요약/압축하고 1 셀에 여러 답변 표시하는 방법

Run# Section 
1  Vertical 
1  Vertical 
1  Vertical 
2  Vertical 
2  Vertical 
2  Curve 
2  Curve 
3  Curve 
3  Curve 
3  Lateral 
3  Lateral 
4  Lateral 
4  Lateral 
4  Lateral 
4  Lateral 

필요한 것은 아래에 있습니다. 기본적으로 내가 이것을 preform하기 전에, 나는 "Rows"에서 Run #으로 피벗 테이블을 사용하고있을 것이고 다른 데이터도 수집 할 것이다. 그런 다음 값을 다른 시트에만 복사하여 붙여 넣으면 아래 그림과 같이 "섹션"의 값을 추가해야합니다.

Run# Section 
1  Vertical 
2  Vertical & Curve 
3  Curve & Lateral 
4  Lateral 

이 사람을 살펴 줘서 고마워. 나는 이것에 관해 무언가를 찾으려고했지만 동일한 셀에는 여러 결과를 보여주지 못했습니다. 어떤 도움이라도 대단히 감사합니다! 좋은 하루 되세요!

답변

0

JOINDISTINCT (아래 코드)이라는 udf가 있습니다.이 것을 배열 수식과 함께 사용하여 필요한 것을 할 수 있습니다. 러닝 데이터 열 A 및 B에 해당 칼럼 E는 별개 실행 목록이 F2에서 ( + 입력 Ctrl 키 + 시프트 입력) 배열 수식 있다고 가정 수식

,

=JOINDISTINCT(IF($A$1:$A$16=E2,$B$1:$B$16,"")," & ") 

실행 속도를 높이기 위해 채워진 범위 만 전체 열을 사용하지 않습니다. 배열 부분은 E2에서 실행 번호와 일치하는 열 A 값을 확인한 다음 섹션 또는 공백을 반환합니다. JOINDISINCT는 배열을하고

Public Function JOINDISTINCT(rng As Variant, Optional separator = ", ") As String 
    JOINDISTINCT = "" 
    Dim v As String 
    'Dictionary needs REFERENCE: Microsoft Scripting Runtime 
    Dim dict As New Dictionary 
    For Each c In rng 
    If IsObject(c) Then 
     v = c.Text 
    Else 
     v = c 
    End If 
    If v <> "" Then 
     If Not (dict.Exists(v)) Then 
     dict.Add v, 1 
     If JOINDISTINCT = "" Then 
      JOINDISTINCT = v 
     Else 
      JOINDISTINCT = JOINDISTINCT & separator & v 
     End If 
     End If 
    End If 
    Next c 
    Set dict = Nothing 
End Function 
+0

@Ryan 당신을 위해이 일을했던 함수 (이 경우) "&"

VBA 코드로 구분 된 별개의 목록을 반환 ??? – Captain

관련 문제