2012-11-01 80 views
0

我想在Excel中每隔11位數字後輸入一個逗號,我的數據將如此。在Excel中的每個11位後加逗號

ODU88131042ODU88131043ODU88131044ODU88131045ODU65110840ODU65110829ODU65110833ODU65110834ODU88131046ODU88131047ODU88131048ODU88131049ODU88131

,我想這樣回答

ODU88131046,ODU88131047,ODU88131048,ODU88131049,ODU88131050,ODU88131051,ODU88131052,ODU88131053,ODU88131054,ODU88131055,ODU88131056,ODU88131057,ODU88131058,ODU88131059,ODU88131060,ODU88131061,ODU88131062,ODU88131063,ODU88131064,ODU88131065,ODU88131066,ODU88131067,ODU88131068,ODU88131069,ODU88131070,ODU88131071,ODU88131072,ODU88131073,ODU88131074,ODU88131075,ODU88131076,ODU88131077,ODU88131078,ODU88131079,ODU88131080,ODU88131081,ODU88131082,ODU88131083,ODU88131084,ODU88131085,ODU88131086,ODU88131087,ODU88131088,ODU88131089,ODU88131090, 

它,我想在非常11位逗號修復和排它只有一個小區,結果也顯示了在一個小區只。請幫助我..

回答

5

這是一種使用VBA的方法。選擇您要放入逗號的單元格並運行宏。

Sub AddCommas() 
    Dim s As String 
    s = Selection.Value 
    Dim x As Long 
    x = Len(s) \ 11 
    If Len(s) Mod 11 = 0 Then 
     x = x - 1 
    End If 
    Do Until x <= 0 
     s = Left(s, x * 11) & "," & Mid(s, x * 11 + 1) 
     x = x - 1 
    Loop 
    Selection.Value = s 
End Sub 
+0

通常,一個公式只針對東西比較簡單的解決方案是在這種情況下更緊湊 - 不是! '= LEFT(A1,11) 「」, 「」 &MID(A1,12,11) 「」, 「」 &MID(A1,23,11) 「」, 「」 &MID(A1,34,11) & 「」, 「」 &MID(A1,45,11) 「」, 「」 &MID(A1,56,11) 「」, 「」 &MID(A1,67,11) 「」, 「」 &MID( A1,78,11) 「」, 「」 &MID(A1,89,11) 「」, 「」 &MID(A1,100,11) 「」, 「」 &MID(A1,111,11)」 「,」「&MID(A1,122,11)&」「,」「 &MID(A1,133,11)」' – pnuts

+1

@pnuts事實上,特別是由於您必須不斷擴展字符串,我認爲有人會提供基於公式的解決方案,但VBA對我來說似乎更合理。 –

0
=SUBSTITUTE(TRIM(SUBSTITUTE(" "&SUBSTITUTE(TEXT(A1,REPT("00000000000 ",EVEN(LEN(C4)))),"00000000000 ",)," 00000000000 ",))," ",",") 
+4

雖然此代碼段可能會解決問題,[包括解釋](http://meta.stackexchange.com/questions/114762/explaining - 完全基於代碼的答案)確實有助於提高帖子的質量,請記住,您將來會爲讀者回答問題,而這些人可能不知道您的代碼建議的原因。 – DimaSan

相關問題