如何從 Excel 2010 中第 N 次和第 N+1 次出現的字元中擷取字串?

如何從 Excel 2010 中第 N 次和第 N+1 次出現的字元中擷取字串?

我有一個電子表格,其中有一列包含一個或多個資料庫名稱的清單。不幸的是,修改這份報告的周轉時間很長。所以我需要操縱數據。

此列包含特定於單一儲存格中的記錄的所有資料庫,以逗號分隔。我需要將此列表分開並將每個資料庫放置在單獨的單元格中。重要提示:我是不是允許在此解決方案中使用 VBA 巨集/程式碼。

第一個很簡單:找到第一個逗號,將其左側的所有內容返回。這是我正在努力解決的下一個問題。

我創建了一個列來計算單元格中有多少個逗號,因此我可以確定是否列出了多個資料庫。

我該如何應對接下來的問題?

答案1

這不是工作表函數答案,但它也不使用 VBA。

您是否嘗試過使用“文字到列”功能?在 Excel 2010 中,它是資料功能區上的按鈕之一。

  1. 選擇您的專欄。
  2. 按一下“文字到列”按鈕。
  3. 在精靈的第一頁上,選擇“分隔符號”,然後選擇“下一步”。
  4. 在第二頁上,勾選「逗號」以選擇它作為分隔符號。您可能需要根據資料的格式勾選/取消勾選其他一些選項。
  5. 此時,您可能可以按一下「完成」將資料拆分為列,但您可能需要轉到下一頁來變更列格式。

答案2

樣本數據在A1, 在B1進入:

=TRIM(MID(SUBSTITUTE($A1,",",REPT(" ",999)),COLUMNS($A:A)*999-998,999))

並複製:

在此輸入影像描述

編輯#1:

如果我們從列中的材料開始A像這樣:

在此輸入影像描述

並運行這個簡短的巨集:

Sub dural()
   Dim N As Long, i As Long, K As Long
   N = Cells(Rows.Count, "A").End(xlUp).Row
   K = 1

   For i = 2 To N
      v = Cells(i, "A").Value
      ary = Split(Cells(i, "B").Value, ",")
      For Each a In ary
         Cells(K, "C").Value = v
         Cells(K, "D").Value = a
         K = K + 1
      Next a
   Next i
End Sub

我們最終會得到這樣的結果:

在此輸入影像描述

相關內容