Discussion:
資料管理,排列的問題
(时间太久无法回复)
MicMicHK
2009-03-01 10:08:01 UTC
Permalink
我公司有大約500名客戶的資料要處理, 是一個 .TXT 檔案, 那些資料的格式如下:

1. abc公司
地址: xxxxx
電話: 23740000
傳真: 3428642784
電子郵件: ***@yahoo.com.hk
聯絡: xxx小姐, 經理

2. xyz公司
地址: xxxxx
電話: 62378613
傳真: 565613245
電子郵件: ***@hotmail.com
聯絡: XXX先生, 經理


我應該用什麼方法最快變成以下這樣呢?

Company Name Tel e-mail address
1 ABC Com xxx小姐 ... som.. xxxxxxx
2 XYZ Com XXX先生 ... Som... XXXXX


我在美國 MS 的討論區問過, 有人這樣回答我:

"Source data as posted assumed representative, running in A1 down
In B1: =OFFSET($A$1,ROWS($1:1)*6-6+COLUMNS($A:A)-1,)
Copy B1 across to F1, fill down as far as required to exhaust source data.
Freeze cols B to F with an "in-place" copy n paste special as value. Insert a
new col C, then select col B, click Data > Text to Columns, delimited, enter
a period for "Other" in step 2. Click Finish. And that should return the
exact results that you seek in cols B to G."


但我不是好明白喔, 可否有高人加以解釋呢? 謝謝
天道無常
2009-03-07 13:05:35 UTC
Permalink
上網查一下 excel transpose二字,但不要 transpose () function.

這個中文叫「轉置」.最簡單之法,即是先複製資料,然後開一個新文件檔,將資
料貼到新文件檔中.貼時選擇「選擇性貼上……」,其後所出現之小視窗中,有「轉
置」一頁,勾選,貼上.

當然,要先將.txt檔案讀入Excel.

至於公司、人名、電話等之先後順序,貼上之後,自然很容易重排.
Post by MicMicHK
1. abc公司
地址: xxxxx
電話: 23740000
傳真: 3428642784
聯絡: xxx小姐, 經理
2. xyz公司
地址: xxxxx
電話: 62378613
傳真: 565613245
聯絡: XXX先生, 經理
我應該用什麼方法最快變成以下這樣呢?
Company Name Tel e-mail address
1 ABC Com xxx小姐 ... som.. xxxxxxx
2 XYZ Com XXX先生 ... Som... XXXXX
"Source data as posted assumed representative, running in A1 down
In B1: =OFFSET($A$1,ROWS($1:1)*6-6+COLUMNS($A:A)-1,)
Copy B1 across to F1, fill down as far as required to exhaust source data.
Freeze cols B to F with an "in-place" copy n paste special as value. Insert a
new col C, then select col B, click Data > Text to Columns, delimited, enter
a period for "Other" in step 2. Click Finish. And that should return the
exact results that you seek in cols B to G."
但我不是好明白喔, 可否有高人加以解釋呢? 謝謝
栗子
2009-04-03 13:50:01 UTC
Permalink
你如果會寫VB,可以用EXCEL巨集,用迴圈把六行變成一行.
如果不會寫,可以用前文PO的,
用你的例子解釋一下,6行一組資料,用了A與B欄,
那你在D1鍵入=OFFSET($A$1,ROWS($1:1)*6-6+COLUMNS($A:A)-1,)
ENTER會顯示abc公司
按一下D1右下角的十字往下拖,會相對複製出xyz公司
在E1鍵入=OFFSET($B$1,ROWS($1:1)*6-6+COLUMNS($B:C)-1,)
按一下E1右下角的十字往右拖
會相對複製出2374000
然後你就應該知道怎麼做了.
Post by MicMicHK
1. abc公司
地址: xxxxx
電話: 23740000
傳真: 3428642784
聯絡: xxx小姐, 經理
2. xyz公司
地址: xxxxx
電話: 62378613
傳真: 565613245
聯絡: XXX先生, 經理
"MicMicHK" 來函:
Post by MicMicHK
1. abc公司
地址: xxxxx
電話: 23740000
傳真: 3428642784
聯絡: xxx小姐, 經理
2. xyz公司
地址: xxxxx
電話: 62378613
傳真: 565613245
聯絡: XXX先生, 經理
我應該用什麼方法最快變成以下這樣呢?
Company Name Tel e-mail address
1 ABC Com xxx小姐 ... som.. xxxxxxx
2 XYZ Com XXX先生 ... Som... XXXXX
"Source data as posted assumed representative, running in A1 down
In B1: =OFFSET($A$1,ROWS($1:1)*6-6+COLUMNS($A:A)-1,)
Copy B1 across to F1, fill down as far as required to exhaust source data.
Freeze cols B to F with an "in-place" copy n paste special as value. Insert a
new col C, then select col B, click Data > Text to Columns, delimited, enter
a period for "Other" in step 2. Click Finish. And that should return the
exact results that you seek in cols B to G."
但我不是好明白喔, 可否有高人加以解釋呢? 謝謝
Loading...