將文字轉換為列

將文字轉換為列

我從資料庫管理員收到了 .csv 檔案形式的資料包。我將這些資料匯入到 Excel 中進行格式化和排序。但是,一列包含我想要解析和排序的三個資訊。此列中的單一儲存格由使用者 ID 號碼和使用者名稱組成(例如:「83920 - johndavis」) 我希望能夠根據每個術語對此列進行排序。在 Excel 中使用巨集是否可以實現這一點,或者我應該使用 VBA?

我有 C 和 Python 背景,因此儘管 VBA 知識有限,但我擁有電腦科學經驗。

這是我在嘗試解決方案時收集的一些資訊。此頁面是我的起點:https://www.cedarville.edu/insights/blog/excel-how-to-parse-data-split-column-into-multiple.aspx 然而,當我嘗試使用這種方法時,列分割遇到了錯誤並且沒有正確分割(見圖)。我相信這是因為列資料是從 Excel 工作表的另一頁在 VBA 中操作的實際資料。你會如何解決這個特質?

從功能列看到的數據

列拆分精靈的第 1 頁

列拆分精靈的第 2 頁

列拆分精靈的第 3 頁

列拆分精靈輸出不正確

答案1

這是一個相當奇怪的 CSV,因為它包含 Excel 公式。 CSV 不應包含資料以外的任何內容。

目前,單元格不僅具有資料值B09 - Theater,還具有公式:

=IFERROR(@__xludf.DUMMYFUNCTION("""COMPUTED_VALUE"""), "B09 - Theater")

錯誤公式計算(虛擬)函數@__xludf.DUMMYFUNCTION("""COMPUTED_VALUE"""),如果傳回錯誤,則寫入值B09 - Theater

如果您不需要維護這些公式(我不知道它們是否有用)而只需要數據,最簡單的方法是選擇所有單元格並將它們貼到新工作表中價值觀

之後您可以使用iskyfire 的回答

答案2

根據我對您帖子的評論,您可以這樣做:

在此輸入影像描述

我還想指出,您的圖像顯示對 VBA 函數的引用,前綴為@__xludf.可能意味著該函數無法用於當前工作簿。它可能位於另一個工作簿的不同模組中,或位於不可用的庫中。

無論如何,在簡單的情況下,第 1 部分分隔符第2部分,您可以使用上面的公式。

在更複雜的情況下,您可以選擇資料中的任何儲存格並使用「資料」>「取得和轉換資料」>「從表格/範圍」啟動 PowerQuery。

在 Power Query 編輯器中,您可以選擇要拆分的列並使用“主頁”>“轉換”>“拆分列”>“按分隔符號”並如下進行配置(例如):

在此輸入影像描述

輸出如下圖所示: 在此輸入影像描述

然後,您可以使用“主頁”>“關閉並載入”將結果載入回工作簿。

答案3

將文字轉換為列

如果您的儲存格包含多個資料值,則可以使用內建的「將文字轉換為列精靈」將它們分開。這將建立一個每列 1 個資料值的表,使您能夠使用 Excel 可用的所有篩選器和排序方法。

筆記:例如,如果您有多個唯一分隔符號分隔每個資料值,83920/johndavis - new york city則可以使用查找和替換將所有-字元變更為/,反之亦然。您需要使用相同的分隔符號來分隔每個資料值,否則您將需要多次執行精靈。

https://support.microsoft.com/en-us/office/split-text-into- Different-columns-with-the-convert-text-to-columns-wizard-30b14928-5550-41f5-97ca-7a3e9c363ed7獲取更多資訊。

刪除無關函數

如果您擁有的資料是封裝的,則可以使用「尋找」和「取代」來Match entire cell contents檢查和Look in: Formulas選擇。

選擇範圍,進入尋找和替換,進行輸入並全部替換。例如=IFERROR(@__xludf.DUMMYFUNCTION("""COMPUTED_VALUE"""),"空字串。

然後您可以再次運行它以將結尾部分刪除")為空字串。

確保在進行大規模查找和替換操作之前,您已備份工作表的原始副本。

相關內容