• ベストアンサー

@以下をソートしたい

メールアドレスの内、ドメイン名(@以下)でソートしたい。 abc@x.j.m efgh@hj.i.r i123.kl@nn.h.j.l @は意図的に全角に直しています。 また、桁数は不ぞろいです。 Word2013が希望ですが、難しいならExcel2013 でも可とします。

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

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

WordやExcelでなら、区切り記号としての半角の@記号で分割した表を 使えば、ソートすることも簡単です。 Wordの場合なら、タイトル行を用意しメール一覧の範囲を選択します。 その状態で、[挿入]タブにある[表]の▼から[文字列を表にする]を選択 します。 [文字列を表にする]ダイアログで[列数]を[ 2 ]にしておきます。 [文字列の区切り]として[その他]を選択して、右側のボックスに半角の [@]を記入します。 半角の@が区切り位置となり、2列目にドメイン名が分割されます。 これを[並べ替え]で2列目を指定してソートをします。 タイトル行を用意したのは、ソートの結果として[ある]と[ない]とでは 結果が違う場合があるためです。 できれば、タイトル行があるほうが結果が正しくなることが多いので、 用意したほうがベターです。 ソートできたら、[表の解除]をするときに[文字列の区切り]を[その他] にして半角の@で解除すれば、元メールの状態に戻ります。

aerio
質問者

お礼

希望のWordによる方法をお示しいただきありがとうございます。 この中で、[文字列を表にする]を教えてもらいました。 しかし、sortにはExcelの方が慣れの問題もあり、やりやすい印象です。 最初に言われた、区切り記号という語句から、Excelで、データ―区切り位置で@の前後を区切る方法を見つけること出来ました。

その他の回答 (2)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんばんは! Excelでの一例です。 ↓の画像のように1行目はダミーで項目行を作っておきます。 B2セルに =MID(A2,FIND("@",A2)+1,20) という数式を入れフィルハンドルでダブルクリック その後B列を1行目から範囲指定 → 右クリック → コピー → そのまま右クリック → 「形式を選択して貼り付け」 → 「値」を選択しOK (数式によって表示されているデータでは並び替えができません) 最後にデータ → 並び替え → 最優先されるキーをB列にし昇順で並び替えを行います。 最後のB列を削除して完了です。m(_ _)m

aerio
質問者

お礼

コメントありがとうございます。 ただ、下の式若干面倒と、おもいます。 =MID(A2,FIND("@",A2)+1,20) No.2さんへ書きましたが、データー区切り位置の方が簡単に行くように思いました。

  • qwreasdf
  • ベストアンサー率36% (12/33)
回答No.1

@よりも右側の文字を取り出して、それをソートしてあげればよいかと思います。 @よりも右側の文字を取り出す方法は次の通りです。 ※A1に「abc@x.j.m」が入っているとして進めます。 RIGHT関数で、@よりも右側の文字を取り出します。 そうするためには、@よりも右側も文字数がわからなければなりません。 @よりも右側の文字数は、全体の文字数から@までの文字数を引いたものです。 「abc@x.j.m」の場合ですと、全体の文字数が9文字です。 そして@までの文字数は4文字です。 @よりも右側の文字数は8文字-4文字=4文字となります。 全体の文字数はLEN関数で調べることができます。 =LEN(A1) @が何文字目にあるかは、SEARCH関数で調べることができます。 =SEARCH("@",A1) これらを組み合わせると、 =RIGHT(A1,LEN(A1)-SEARCH("@",A1)) という関数になります。 これで@よりも右側の文字を抜き出すことができます。 この関数をB列にはりつけて、B列をソートすれば完成です。 Wordには、Excelのデータを貼りつけることができます。 Excelでソートしたものをコピーし、Wordに貼り付けてください。

aerio
質問者

お礼

早速の回答ありがとうございました。 答えの一つになること確認できました。 ただ申し訳ありませんが、式の作成がチョット面倒と言った印象です。

関連するQ&A