셀의 값 B1:K1
을 연결하여 A1
의 문자열을받을 수있는 방법은 무엇입니까? 빈 셀은 생략해야합니다. Excel 명령을 사용하거나 vba에서만 사용할 수 있습니까?Excel : 셀 연결 및 중복 제거
0
A
답변
1
는 Office 365 Excel이 다음 TEXTJOIN의 배열 형태로 사용할 수있는 경우 : 그것은으로 확인 될 필요가 배열 인
=TEXTJOIN(", ",TRUE,INDEX(1:1,,N(IF({1},MODE.MULT(IF((IFERROR(MATCH(B1:K1,B1:K1,0)=COLUMN(B1:K1)-MIN(COLUMN(B1:K1))+1,0))*(B1:K1<>""),COLUMN(B1:K1)*{1;1}))))))
을 Ctrl 키 Shift 키를 입력하는 대신 때 입력 편집 모드를 종료합니다. 당신이 사무실 365 엑셀이없는 경우
당신은 VBA가 필요합니다. 이 UDF는 TEXTJOIN을 모방합니다. 통합 문서에 첨부 된 모듈에 넣고 위에 설명 된 수식을 사용하십시오.
Function TEXTJOIN(delim As String, skipblank As Boolean, arr)
Dim d As Long
Dim c As Long
Dim arr2()
Dim t As Long, y As Long
t = -1
y = -1
If TypeName(arr) = "Range" Then
arr2 = arr.Value
Else
arr2 = arr
End If
On Error Resume Next
t = UBound(arr2, 2)
y = UBound(arr2, 1)
On Error GoTo 0
If t >= 0 And y >= 0 Then
For c = LBound(arr2, 1) To UBound(arr2, 1)
For d = LBound(arr2, 1) To UBound(arr2, 2)
If arr2(c, d) <> "" Or Not skipblank Then
TEXTJOIN = TEXTJOIN & arr2(c, d) & delim
End If
Next d
Next c
Else
For c = LBound(arr2) To UBound(arr2)
If arr2(c) <> "" Or Not skipblank Then
TEXTJOIN = TEXTJOIN & arr2(c) & delim
End If
Next c
End If
TEXTJOIN = Left(TEXTJOIN, Len(TEXTJOIN) - Len(delim))
End Function
+0
감사합니다! 잘 했어! – user969113
아마 더 우아한 해결 방법이 있습니다하지만 당신은 단지 CONCATENATE, 또는 앰퍼샌드을 사용할 수 = B1 C1 및 D1 및 E1 및 F1 & G1 & H1 & I1 & J1 및 Excel이 사용하고있는 K1 – Absinthe
&? –
> = Excel 2016을 사용한다면'TEXTJOIN' [link] (https://www.techonthenet.com/excel/formulas/textjoin.php) – Tom