
私はデータベースを作成しようとしていますこのウェブサイト各国には多数の代理店があり、代理店名の横に連絡先が記載されています (FAX 番号と会社名は必須ではありません)。
問題は、ウェブサイトのフォーマットデータを Excel シートにコピーすると、各エージェントの情報が 3 行または 4 行に分散されます。
各エージェントの情報を1行にまとめる必要があります。
例:(括弧内のセル)
[ 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 />
置換後: " " (空白 1 つ)」を選択して、「すべて置換」をクリックします。
すべてをコピーして 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),"")