我從資料庫管理員收到了 .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
這是一個相當奇怪的 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
則可以使用查找和替換將所有-
字元變更為/
,反之亦然。您需要使用相同的分隔符號來分隔每個資料值,否則您將需要多次執行精靈。
刪除無關函數
如果您擁有的資料是封裝的,則可以使用「尋找」和「取代」來Match entire cell contents
檢查和Look in: Formulas
選擇。
選擇範圍,進入尋找和替換,進行輸入並全部替換。例如=IFERROR(@__xludf.DUMMYFUNCTION("""COMPUTED_VALUE"""),"
空字串。
然後您可以再次運行它以將結尾部分刪除")
為空字串。
確保在進行大規模查找和替換操作之前,您已備份工作表的原始副本。