標題:
[發問]
各位好,我想請問一個資料剖析的問題
[打印本頁]
作者:
ss961471
時間:
2013-4-18 11:42
標題:
各位好,我想請問一個資料剖析的問題
假如我想把一個字串如下
111.222.333.444
個別分開各自一個儲存格,我可以用資料剖析來處理
但有沒有辦法可以用函數來處理?
我想每次將資料貼進A1後,就自動能在B1、C1、D1、E1貼上各自的字串
請問有辦法嗎?
作者:
sunnyso
時間:
2013-4-18 12:24
回復
1#
ss961471
111.222.333.444
=TRIM(MID(SUBSTITUTE($A1,".",REPT(" ",301)),COLUMN(A1)*301-300,301))
(借用ML089的函數)
作者:
die78325
時間:
2013-4-18 12:29
回復
1#
ss961471
請開啟隨便EXCEL 點選ALT+F11 開啟巨集編輯程式 再右鍵您所開啟的EXCEL 插入模組 把以下程式碼複製進去
在工作頁內新增一個圖案((隨便看要方形圓形)) 對圖案點右鍵 指定巨集 選擇 "簡單的迴圈剖析" 再把資料丟入A1 再點選圖案 就會執行了
此巨集有迴圈設計 所以你可以貼多筆資料 A1 A2 A3 A4 A5 但A1一定要有資料 否則會以為無資料! 如有問題再發問 感謝您 我也是新手
不知是否有幫上忙~~~
Option Explicit
Sub 簡單的迴圈剖析()
Dim g, i As Long
'偵測A1是否有資料,如無資料則離開
If Range("A1") = "" Then MsgBox "無偵測到任何資料,欲剖析的資料請放入A列": End Sub
'偵測有幾行要剖析 (檔案最後一筆的位置)
g = [a65565].End(xlUp).Row
'開始迴圈
For i = 1 To g ' 迴圈從第一至最後一筆
Range("A" & i).Select '選擇要剖析的儲存格
' 開始資料剖析 (以 " . " 來區隔)
Selection.TextToColumns Destination:=Range("A" & i), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
:=".", FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1)), _
TrailingMinusNumbers:=True
Next
'迴圈結束
MsgBox "剖析完成"
End Sub
複製代碼
作者:
die78325
時間:
2013-4-18 12:33
回復
2#
sunnyso
函數真是高難度= ="
密密麻麻的....真想像大大一樣厲害!@@" 雖然是引用別人的 但 能理解也是高手!
作者:
amaggie_h
時間:
2013-4-18 18:00
Hi ~ 我有個簡單的方式~ 可以使用MID函數, 先設定好B1=MID($A1,1,3) , C1=MID($A1,5,3), D1=MID($A1,9,3), E1=MID($A1,13,3), 當A1輸入固定字元的字串時, B1~E1就會自動帶出囉^^y
作者:
hydraulic
時間:
2013-4-18 22:11
第一種方法:TRIM(MID(SUBSTITUTE($A1,".",REPT(" ",301)),COLUMN(A1)*301-300,301)),不知道甚麼樣的情況會失效喔!
第三種方法:B1=MID($A1,1,3),好像只針對固定字元有效而已若四組數的字元不統一就失效了
作者:
sunnyso
時間:
2013-4-19 10:13
回復
6#
hydraulic
方法一, 只要A1去掉"." 後的長度不超過301就不會出錯.或者用下列公式. 可以避免
=TRIM(MID(SUBSTITUTE($A1,".",REPT(" ",LEN(SUBSTITUTE($A$1,".","")))),LEN(SUBSTITUTE($A$1,".",""))*(COLUMN(A1)-1)+1, LEN(SUBSTITUTE($A$1,".",""))))
作者:
sunnyso
時間:
2013-4-19 11:14
補充經過測試只要去掉點號的字串長度中文boublebyte-963, 英文singlebyte-873
方法一不會出錯
=TRIM(MID(SUBSTITUTE($A1,".",REPT(" ",LEN(SUBSTITUTE($A$1,".","")))),LEN(SUBSTITUTE($A$1,".",""))*(COLUMN(A1)-1)+1, LEN(SUBSTITUTE($A$1,".",""))))
作者:
sunnyso
時間:
2013-4-20 01:52
回復
1#
ss961471
用以下公式沒有長度限制
=IF(LEN($A$8)-LEN(SUBSTITUTE($A$8,".",""))<COLUMN(A1)-1,"",MID($A$8,FIND(CHAR(1),SUBSTITUTE("." & $A$8&".",".",CHAR(1),COLUMN(A1))),FIND(CHAR(1),SUBSTITUTE("." &$A$8&".",".",CHAR(1),COLUMN(B1)))-FIND(CHAR(1),SUBSTITUTE("." & $A$8&".",".",CHAR(1),COLUMN(A1)))-1))
A8=12131231.123131.312.312.31223.123.12313213.fsdfjlsd.32123123.fsdalfjsf.fsadfjfs.afs.f.fsdfa
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)