看板 Office 關於我們 聯絡資訊
軟體:Office Excel VBA 版本:2010 原本是透過 Line Input將csv檔逐行讀入,並透過Split指令拆成陣列 但是現在的問題是來源資料本身包含逗號,導致Split指令出錯。 目前來源資料如下: "aaaa","bbbb","cc,cc",1.23,0,"",500,"eee" 字串前後會有""夾住,數字不會有,有逗號的字串出現位置不定... 請問有前輩友好建議的嗎? -- ┌─────────────────────────────┐ 就這樣,終於到了啟程的日子。 和來機場送行的朋友們說著玩笑話,其實內心恍恍惚惚像在作夢。 也似乎是因為,為了走到「出發」這一步,耗盡了全部心力。 └─────────────────石田裕輔《不去會死!》─┘ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.71.9.169 ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1528445287.A.CDB.html
soyoso: 因要分割的逗號前雙引號的個數為偶數 06/08 17:52
soyoso: 如無合適的方法的話,可迴圈(逐字或逗號),判斷逗號前雙 06/08 17:52
soyoso: 引號個數是否為偶數,是的話,置換其他分割字元。最後再以 06/08 17:53
soyoso: 以新的分割字元來split 06/08 17:53
foolkids: 謝謝SO大,可是資料筆數不少,不知道這樣會不會影響效能 06/08 17:59
foolkids: 但是我還是會試試看,謝謝! 06/08 17:59
soyoso: 覺得以迴圈和判斷是會影響的 06/08 22:13
soyoso: 如不以迴圈判斷的話,也可以正規表示將,[0-9]和雙引號,取 06/08 22:15
soyoso: 代逗號為其他分隔符號 06/08 22:15
foolkids: 我有試著想要取代,但是逗號出現的位置沒有規律,所以不 06/08 23:13
foolkids: 知道怎麼取代比較好。像是前後都是數字的逗號跟字串內的 06/08 23:13
foolkids: 逗號其實就分不出來了 06/08 23:13
soyoso: 回文的正規表示是可以將字串內的逗號排除的 06/08 23:20
soyoso: 只針對,數字0-9或,"的部分來取代 06/08 23:21
foolkids: 呃… 我想不出來怎麼取代,SO大可以解惑嗎? QQ 06/09 05:37
foolkids: 是這個嗎?Pattern? 06/09 05:56
soyoso: 類似該網頁,pattern內以括號包住條件可於取代以$1方式取 06/09 09:32
soyoso: 出;需加上global為true 06/09 09:33
soyoso: pattern條件會是",([0-9""])";取代為";$1";split以";" 06/09 09:41
cancelpc: 這個問題是一堆人都沒按照正常 csv 規範產檔。csv 規範 06/15 12:40
cancelpc: 中都有這些意外狀況的處理方式。 06/15 12:40
cancelpc: 隨便自己寫產出 csv 檔,遇到分隔符號有衝突,就自己亂 06/15 12:42
cancelpc: 訂分隔符號,甚至用多個字元當分隔符號。 06/15 12:42
cancelpc: csv 規範中有提到資料裡有 , 時,該怎麼處理。有 " 引 06/15 12:45
cancelpc: 號時該怎麼處理。(當然分隔符號可以自訂,但至少規範 06/15 12:45
cancelpc: 中都有考慮到,只是遇到很多人只做半套,遇到問題就改定 06/15 12:45
cancelpc: 分隔符號,沒去處理。導致一些工具無法處理這些自訂的 c 06/15 12:45
cancelpc: sv 格式) 06/15 12:45