• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel Accessにてこんなことできますか??)

Excel Accessにてこんなことできますか??

このQ&Aのポイント
  • ExcelやAccessで、1セルまたは1アドレスごとに複数のEメールアドレスが入力されている場合、それらのアドレスから@以降のドメインのみを取得する方法について教えてください。
  • 複数のEメールアドレスが1セルまたは1アドレスに入力されており、カンマで区切られている場合、名前にもカンマが含まれている可能性があります。このような場合に、それぞれのアドレスから@以降のドメインのみを抽出する方法を教えてください。
  • ExcelやAccessで複数のEメールアドレスを取り扱う際、1セルまたは1アドレスごとにアドレスが入力されている場合、@以降のドメインのみを抽出する方法を教えてください。名前にもカンマが含まれている場合にも対応できる方法があれば、お教えください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

VBAを使用すれば可能だと思います。 1セル1アドレスにするには、"," ではなく ">," を区切りとみなしてやればどうでしょうか。 VBAでSplit関数が使用できたかどうか記憶が定かではないのですが、Split関数が使用できなければ、 (1)InStr関数を使用して ">," を探す。 (2)見つかれば、それより前の文字(Left関数を使用)を元のセルにセットし、">," より後ろの文字(Mid関数を使用)を一つ下のセルにセット (3)処理対象を一つ下のセルに移し、(1)、(2)を、 ">,"が見つからなくなるまで繰り返す。 という処理で可能だと思います。

その他の回答 (2)

  • seiiiichi
  • ベストアンサー率41% (79/190)
回答No.3

カンマで区切られた全てのアドレスが、  ****<***@***.***> というように<>で囲まれていればExcelで以下のようにできるかと思います。 (名前の***の部分はあっても無くてもいい) ※1セルにというのは、1つのセルにしかリストはないという認識でやってますが、  そういうセルが複数ある場合も、以下の応用で行けると思います。 ※手元にあるのが、Excel2007の英語版のみなので、メニュー名等にいくらか間違いがあると思います。 <手順> 1.置換にて「>,」を「%」に変換する。   (%でなくてもいいですが、アドレスリストに使われていない1文字にしてください。    逆に%が使われていたら別の文字にしてください。) 2.そのセルのある列を選択して「データ」→「区切り文字」を選択し、   「区切り文字」を「%」に指定して、実行。   (この段階で、1セル1アドレスになったはず) 3.その行を選択して、コピー 4.別シートのセル「A1」上で「形式を指定してペースト」を選び、   「列と行を入れ替える」でペースト 5.列Aを選択して、再度「データ」→「区切り文字」を選択し、   「区切り文字」を「@」に指定して、実行。 で、列Bにほしいリストができたのでは?と思います。

winee
質問者

補足

ご回答ありがとうございます。 確かに、ご教示していただいた方法では可能です。 ただ、1セルに複数のアドレスが含まれているデータが、2千行ぐらいあるので、その方法では手間がかかります。 ルーティン的にはできないでしょうか。

noname#182251
noname#182251
回答No.2

VBAを使用して、正規表現を利用すれば、できるでしょう。 http://codezine.jp/article/detail/1655 正規表現の利用方法が判らなければ、その状況を説明した、新しい質問をすることをお奨めします。

関連するQ&A