VBA가 아닌 워크 시트 기능을 사용하려면 각 열 머리글을 별도의 셀로 반환하는 것이 좋습니다. 실제로 데이터에 사용되는 열을 반영하기 위해 C :
BC: =IFERROR(INDEX($A$1:$C$1,1,SMALL((LEN($A2:$C2)>0)*COLUMN($A2:$C2),COUNTBLANK($A2:$C2)+COLUMNS($A:A))),"")
의 범위 참조 A를 조정 :이 공식은
배열 입력 한해야
: 당신은 같은 수식을 입력하여이 작업을 수행 할 수 있습니다. 위와 동일한 혼합 주소 형식을 사용해야합니다. 그러나 $ A : A 참조를 변경하지 마십시오.
그런 다음 공란이 생길 때까지 오른쪽 칸을 채우십시오. 필요한만큼 채우십시오.
"다른"헤더의 목록을 가져 오기 위해 논리를 되돌릴 수 있습니다.가 입력 타격하면서
배열에 입력 수식 셀 또는 화학식 줄에 수식을 입력 한 후, 다운 CTRL 시프트 개최. 당신이 올바르게 을 한 경우 Excel {...} 공식 주위에 중괄호를 배치합니다.
실제로 두 개의 다른 열에 쉼표로 구분 된 값으로 결과가 필요한 경우 다음 사용자 정의 함수를 제안합니다.
이 사용자 정의 함수 (UDF)를 입력하려면 alt-F11이 Visual Basic Editor를 엽니 다. 프로젝트가 프로젝트 탐색기 윈도우에서 강조 표시되어 있는지 확인하십시오. 그런 다음 상단 메뉴에서 삽입/모듈을 선택하고 아래에있는 코드를 붙여 넣습니다.
은 텍스트가 포함되지 않은 헤더를 얻으려면이 사용자 정의 함수 (UDF)가,
=Headers($A2:$BA2,$A$1:$BA$1,True)
같은 수식을 입력 사용하거나하려면
=Headers($A2:$BA2,$A$1:$BA$1,FALSE)
일부 셀에.
============================================== =======
Option Explicit
Function Headers(rData As Range, rHeaders As Range, Optional bTextPresent As Boolean = True) As String
Dim colHeaders As Collection
Dim vData, vHeaders
Const sDelimiter As String = ", "
Dim sRes() As String
Dim I As Long
vData = rData
vHeaders = rHeaders
Set colHeaders = New Collection
For I = 1 To UBound(vData, 2)
If (Len(vData(1, I)) > 0) = bTextPresent Then colHeaders.Add vHeaders(1, I)
Next I
ReDim sRes(1 To colHeaders.Count)
For I = 1 To colHeaders.Count
sRes(I) = colHeaders(I)
Next I
Headers = Join(sRes, sDelimiter)
End Function
==================================== ======
범위 인수가 단일 행이고 두 인수가 같은 크기인지 확인하려면 루틴에 논리를 추가해야합니다.
는 도움말 -에 대한 당신이 너무 많은 30 분을 데려 감사하지만 나는 마지막으로이 VBA를 접근 방식을 사용하는 방법을 알아 냈어. – Zenithfall