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

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

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

以前にも似たようなことをお聞きしましたが、別対応しないといけなくなりました。宜しくお願いします。 <前提> ・Excelの1セル(Acessも同様)に、複数のEメールアドレスがある。 ・複数のEメールアドレスの場合、カンマにて区切られている。但し、そのEメールアドレスはアドレス帳に登録した情報のため、名前にカンマ登録していたら、名前にもカンマが入っている。 (例) 山田隆<takashi.yamada@xxxx.xxxx>,koike,taka<taka_koike@xxxx.xx.xx>,~(以下後続アドレス) <行いたいこと> 最終的には、@以降のドメインのみを取得する。 <悩んでいること> アドレスが1つなら区切り文字を@にして分解すれば、決まった列に@以降の文字列がセットされるが、複数あると、@以降の文字列のセットがバラバラになってしまいます。 そこで、まず、複数のアドレスがあった場合、1セルに1アドレスになるよう何かしら関数などを使って行いたいのですが(私はカンマが1アドレスの区切りとなるので、まず、カンマにて分解しようとしたのですが、上記のように名前にもカンマがある場合があり、一定の法則がないため断念した)、良い方法ありますか。※何千件もあるのでハンド対応は厳しい そもそも、1セルに1アドレスに設定する必要性がない方法などありましたら、教えてください。 ・条件 excel,access ともに2002 or 3? 宜しくお願いします。

  • winee
  • お礼率18% (13/70)

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

  • ベストアンサー
回答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

  • エクセルVBAのヒントをください

    エクセルのある列に、文字列が入っているとします。 たとえば、Aであったり、Cであったり、A,C,Fとカンマ区切りで複数の文字列(個数は不定) が入っていたりします。 このとき、一行に一つの文字列しか含まないように、カンマで区切られた文字列を展開し、 複数行に分けて格納したいと思っています。 たとえば、一番上の行のセルにA、二番目の行に「C,D,A」、三番目の行にB、四番目の行に 「E,A」と入っていたら、各行に一文字列のみ入るように、上からA、C、D、A、B、E、Aという行を 作りたいと思います。各セルに含まれる文字列の個数は不定で、規則性はありません。 基本的に、 (1)各セルに含まれているカンマの数を調べる (2)カンマの数だけ次の処理を繰り返す  ・行挿入   ・最初のカンマの位置を調べる   ・先頭からカンマまでを切り取る   ・上記の値をセルに入力  ・行挿入   ・2番目のカンマの位置を調べる   ・1番目のカンマの位置+1から2番目のカンマの位置まで切り取る   ・上記の値をセルに入力 上記をカンマの数だけ繰り返す。 といった具合にしていくのだと思いますが、このような処理をするのに はどの程度のVBAのスキルが必要ですか? 上記のヒントや、参考になるサイト、書籍があればご教授ください。

  • Excelでカンマ区切りの文字列をセルに分割する?

     住所録をExcelにコピーしたら、 カンマ区切りに一つのセルに入ってしまいました。 ◇カンマごとに一つのセルに分割して文字列を分ける。 ◇氏と名の間は半角スペースでカンマでは有りませんが、   二つのセルに分ける。 上記について分ける関数を教えてください。    

  • メモ帳のデータをエクセルに貼付けしたい。

    メモ帳のデータをエクセルに貼付けしたい。 メモ帳に、コンマ区切りで書かれた多数のデータ(1行に文字列が10~100個)が、複数行あります。 これを、エクセルの各セルに、位置的に同じ位置に貼り付ける方法を教えてほしい。 しろうとですのでわかりやすくお願いします。 

  • エクセルでカンマ区切り文字を各行に分解するマクロを書きたい

    WindowsXP Excel2003 エクセルで以下ができるマクロを書きたいです。 B列にはカンマ区切りで文字列が入っています。 カンマ区切りの数は行によって様々です。 この表をB列のカンマ区切り文字を各行に分解したいです。 その際、A列とC列は分解前の値と同様です。 このようなマクロは書けますかね? A列     B列     C列 あ     a,b,c    100 い     d,e     200 う     f      300 え     g,h     400     ↓ A列     B列     C列 あ     a      100 あ     b      100 あ     c      100 い     d      200 い     e      200 う     f      300 え     g      400 え     h      400

  • Excelの保存で" "を付けないように保存できる?

    Excel-97を使用してます。ブックで作成したファイルを名前を付けて保存する時にタブ区切り形式を選んだ時,文字列でカンマ(,)が含まれたセルはダブルコーテーション(")でくくられてしまいます。 セル:6,7,8ABCD とある場合 "6,7,8ABCD"となってしまいます。 これをダブルコーテーションを付けないように保存する方法を教えてください。 セル:6,7,8ABCD とある場合 タブ区切りで保存されたファイルには 6,7,8ABCD となってほしいのです。 宜しくお願いします。

  • ACCESS97のモジュールにSPLITは無いの?

    パールでカンマ区切りのテキスト(行)を下記のコーディングで分解していました パールコーディング  @pflg=split(/,/,$xx) 入力($xx) 11,22,33,44 出力 @pflg(0) → 11    @pflg(1) → 22    @pflg(2) → 33    @pflg(3) → 44 アクセスのモジュールで同様のコーディングは出来ないのでしょうか?

  • excelで、1つのセルに入っている複数の数字を合計するには?

    Excel(2002以降)で、たとえば  セルA1に 33,2,55,764  セルA2に 654,654,8,165,46 のように、カンマ区切りで数字が入っていて、 その数字の合計をB列に表示させるということは可能でしょうか? 試算用にB列・C列などを使い、結果をD列、などという方法でも大丈夫ですが、数字がいくつに分けられるかはわからない(極端な話100個や200個の可能性もある)ので、その分のセルを確保するのは無理です。 数字はいくつ入っているかはセルごとに違い、何も入っていない場合や1つしかない場合もあります。 カンマを+に置換して計算させるような関数があればできそうだと思ったのですが、ヘルプでは探しだせませんでした。 なにかいい方法があればお願いします。

  • Excel 2007に詳しい方教えてください

    新聞に掲載された人事異動表が“▽”印で区切られています。 非常に文字列として長くなってしまいます。 “▽”を一括して“,(カンマ)”に置換できることが分かりました。 この長い文字列を、一人分一セルに【区切り位置】機能などを使用して一括して置き換える方法を教えてください。 現在は、なぜか数名ずつ一つのセルに入ってしまったり、全く変化が無かったりで、困って居ます。 行の間に空の行が一つおきにあります。

  • エクセル・1セル内の合計の算出方法について(エクセル2000)

    1つのセルに('4,1,2,1,1,1,1,1")と入力されている数値の合計を算出する方法はありますか? ” , (カンマ)”がテキストで認識されている為、 カンマ 区切りでの個々の分解が出来ません。また、数値の個数も行により異なります。

  • [JAVA+CSV]カンマ区切りを分解したい!

    こんばんわぁ♪ カンマ区切りの文字列を分解して新しい変数に格納しなおしたいのです・・・。 たとえば・・・。 MOJIRETSU = "12,13,14,15" という文字列を・・・。 a=12 b=13 c=14 d=15 というように分解して新しい変数に。 どのようなコマンドまたは手段を使えばうまくいきますか??

    • ベストアンサー
    • Java

専門家に質問してみよう