
我正在嘗試建立一個資料庫這個網站。每個國家都有大量代理商,其姓名旁邊有詳細的聯絡資訊(不需要傳真號碼和公司名稱)。
問題是,由於網站的格式,當我將資料複製到 Excel 工作表中時,每個代理程式的資訊分佈在 3 或 4 行中。
我需要每個代理將他們的所有資訊放在一行中,
例如(括號中的儲存格)
[ A1 ] [ B1 ] [ C1 ] [ D1 ] [ E1 ] [ F1 ]
GRO Alberti [email protected] Bosnia P Hora K2 A 8 41 Dhjetori Girana Tel:+42-79/379 82 86.
我嘗試手動複製貼上所有內容,但這需要很長時間。
有沒有任何自動或更快的方法來實現我想要做的事情?
答案1
如果你想使用Excel公式:
- 將表格複製並貼上到 Excel 中
- 前 2 列中的行將合併,但公式只能看到合併區域左上角儲存格中的值,其他儲存格對於公式顯示為空白
- 假設資料從儲存格開始
A2
,請在儲存格中新增下列公式E2
- 新行輸入方式為Alt+Enter:=C2 & IF($A3<>"", "", "
" & E3) - 將公式複製到適當的範圍
- 按列過濾
Name
,排除(Blanks)
- 隱藏原始內容
Address
和Other info
列 - 將特殊值複製並貼上到新工作表中
底層演算法是:
- 從底行開始
- 如果
Name
第 1 行向下不為空,則建立S
包含該行中的位址的新字串
,否則將該行中的位址中的文字新增至S
- 向上移動 1 行
答案2
我不確定您如何獲取 C1 的值,但您應該能夠獲取頁面的源代碼。為此,請按Ctrl+ U。這應該會給你一個用 html 寫的頁面。尋找第 128 行(或表開始的位置,那裡應該有您需要的數據,並且以<table class ...
.
複製所有內容,從<table class ...
到</table>
位於同一行,靠近末尾。
將其貼到記事本中。
按一下Ctrl+H並使用查找內容:<br />
取代為:「 」(一個空格),然後按一下全部取代。
複製所有內容並貼上到 Excel 中。之後您可以刪除格式以均勻單元格尺寸。
請注意,超連結將保留在資料中。
編輯:
將電子郵件、電話、手機和傳真分開會稍長一些,但不會那麼長。
若要取得電子郵件,請在 E2 的下一個儲存格中使用下列公式:
=LEFT(D2, FIND(" ",D2)-1)
並往下拉。
現在要取得數字,首先在 F 列中單獨取得所有數字會更容易:
=MID(D2, FIND(" ",D2)+1, LEN(D2))
現在,在 G 中,我們將獲得電話,在 H 中,我們將獲得傳真,在 I 中,我們將獲得手機。
在 G2 中,放置並向下拖曳:
=IFERROR(MID(F2,FIND("Tel:",F2)+4,IFERROR(FIND(":",F2,FIND("Tel:",F2)+4),LEN(F2))-FIND("Tel:",F2)-4),"")
在 H2 中,放置並向下拖曳:
=IFERROR(MID(F2,FIND("Fax:",F2)+4,IFERROR(FIND(":",F2,FIND("Fax:",F2)+4),LEN(F2))-FIND("Fax:",F2)-4),"")
在 I2 中,放置並向下拖曳:
=IFERROR(MID(F2,FIND("Mobile:",F2)+7,IFERROR(FIND(":",F2,FIND("Mobile:",F2)+7),LEN(F2))-FIND("Mobile:",F2)-7),"")
之後,複製所有內容並貼上為值以刪除公式。選擇 G 列到 I 列並透過+取代所有Tel
,Fax
和。Mobile
CtrlH
法國功能依上述順序排列:
=GAUCHE(D2, TROUVE(" ",D2)-1)
=STXT(D2, TROUVE(" ",D2)+1, NBCAR(D2))
=SIERREUR(STXT(F2,TROUVE("Tel:",F2)+4,SIERREUR(TROUVE(":",F2,TROUVE("Tel:",F2)+4),NBCAR(F2))-TROUVE("Tel:",F2)-4),"")
=SIERREUR(STXT(F2,TROUVE("Fax:",F2)+4,SIERREUR(TROUVE(":",F2,TROUVE("Fax:",F2)+4),NBCAR(F2))-TROUVE("Fax:",F2)-4),"")
=SIERREUR(STXT(F2,TROUVE("Mobile:",F2)+7,SIERREUR(TROUVE(":",F2,TROUVE("Mobile:",F2)+7),NBCAR(F2))-TROUVE("Mobile:",F2)-7),"")