簡體   English   中英

Excel - 如何將單元格中的列表拆分為單獨的單元格

[英]Excel - how to split a list in a cell into separate cells

我試圖將這些名稱分開,以便每個名稱都在一個單元格中。 我曾嘗試將文本添加到列中,但這不起作用。

在此處輸入圖片說明

您可以使用下面的代碼用chr(10)分割字符串,該字符串表示換行符。 請注意輸入數據標題和輸出列后面的假設。 另請注意,在這種情況下,詞典僅在VBA中以某種方式保持順序時才起作用-在其他編程語言中則不太可能。

Public Sub sub_test()

    Dim wsThis As Worksheet: Set wsThis = ActiveSheet
    Dim vData As Variant
    Dim dicOutput As Object: Set dicOutput = CreateObject("scripting.dictionary")
    Dim vTemp As Variant
    Dim vLine As Variant
    Dim i As Long


    With wsThis
        ' Read data into memory - assume no header
        vData = .Range(.Range("A1"), .Range("A1").End(xlDown))

        ' Loop through each row
        For i = LBound(vData, 1) To UBound(vData, 1)
            ' Split by new line
            vTemp = Split(vData(i, 1), Chr(10))
            For Each vLine In vTemp
                ' Check if new line is empty string
                If Trim(vLine) <> vbNullString Then
                    dicOutput(vLine) = 1
                End If
            Next vLine
        Next i
        vTemp = Application.Transpose(dicOutput.keys)

        ' Output into worksheet - assume column C
        .Range("C1").Resize(UBound(vTemp, 1) - LBound(vTemp, 1) + 1, UBound(vTemp, 2) - LBound(vTemp, 2) + 1) = vTemp
    End With



End Sub

這是在Excel 2016中不使用VBA的情況下執行此操作的方法:

  • 使用=TEXTJOIN()可以將所有值組合在一起,如下所示

=TEXTJOIN(CHAR(10,TRUE,$A$2:$A$5)

  • 現在我們有了完整的文本字符串,我們希望將其與公式結合使用,以從該字符串中獲得CHAR(10)換行符之間的部分。 因此,在單元格B2您可以編寫:

=TRIM(MID(SUBSTITUTE(TEXTJOIN(Chr(10,TRUE,$A$2:$A$5),CHAR(10),REP(" ",99)),(ROW()-1)*99-98,99))

向下拖動公式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM