
No.1ベストアンサー
- 回答日時:
メールアドレスを検出するわけではありませんが、もしメールアドレスが< >で囲まれていて、かつ、< >の記号が文章の中でメールアドレスの部分のみに使われているか、他に使われていてもメールアドレスよりも後に使われているのであれば、次の方法を試してみて下さい。
A列にA1から文章が入力されているとして、B1に
=MID(A1,FIND("<",A1,1)+1,FIND(">",A1,1)-FIND("<",A1,1)-1)
と入力して、以下コピーとします。
B列に< >の中のアドレスが表示されると思います。
なお、< >も含めて抜き出したいのであれば、
=MID(A1,FIND("<",A1,1),FIND(">",A1,1)-FIND("<",A1,1)+1)
として下さい。
No.3
- 回答日時:
B列に表示したいとのことですが、1個の式で出す方法を思いつかないので、B列とC列に式を入れ、C列に結果を表示する方法を書きます。
後でB列は非表示にしておくと良いと思います。データがA1からA5に入っているとして
A列 B列 C列
データ =SEARCH("@",A1,1) =IF(COUNT(B1)=1,A1,"")
B1とC1に上記の式を入れ、それぞれ5行目までコピーします。
式の意味はB1でアットマークが何文字目か出し、メールアドレスならば数値がでる。C1ではB1に数値が1個あればA1のデータを、数値が無ければ空白を。やってみて下さい。
回答ありがとうございます。
今回はNO1の方に教えていただいた方法でやることになりましたが、
1628taniさんの方法もちょっとチャレンジしてみたいと思います。
No.2
- 回答日時:
こんばんは。
ユーザー定義関数で考えてみました。
こちらは、<...> という区切り文字がなくても、取り出せます。
Alt + F11 で、Visual Basic Editor 画面を開けたら、
メニューの[挿入]-[標準モジュール] をクリックして、白い画面が開いたなら、以下のコードを貼り付けます。貼り付けたら、Alt + F11 で、元の画面に戻ります。
Function PickupADR(文字列 As Variant)
Dim re As RegExp
Dim Matches As Object, M As Object
Dim i As Long, buf As Variant
Set re = CreateObject("VBScript.RegExp")
With re
.Pattern = "\w+@[\w\.]+" 'メールアドレスのパターン
.Global = True
If .test(文字列) Then
Set Matches = .Execute(文字列)
If Matches.Count = 1 Then
PickupADR = Matches(0).Value
ElseIf Matches.Count > 1 Then
ReDim buf(0 To Matches.Count)
For Each M In Matches
buf(i) = M.Value
i = i + 1
Next
PickupADR = buf
End If
End If
End With
End Function
この関数は、一般的な関数のように使えますが、少し変わった特徴があります。
=PICKUPADR(A1)
とすれば、メールアドレスが取り出せますが、ひとつのセルに2つ以上入っている場合は、
=INDEX(PICKUPADR($A$1),1,COLUMN(A1))
として、フィルハンドル・コピーで、右にスライドすれば、次に入っているメールアドレスも取り出せます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
エクセル内のメールアドレスをメール送信先に一斉に移す方法
Windows Vista・XP
-
EXCELで、漢字のみ抽出する式を教えてください。
Excel(エクセル)
-
特定の文からメールアドレスのみ抽出する方法
PHP
-
-
4
文字列から英数字のみを抽出する関数
Excel(エクセル)
-
5
エクセルで複数のデータをセミコロンで繋げる方法
その他(Microsoft Office)
-
6
エクセルの選択範囲以外を削除する方法
Excel(エクセル)
-
7
excelで、スクロールをすると限りなく下に行き、ワークシートが大きく
Excel(エクセル)
-
8
全角・半角混在の文字列から半角文字のみ取り出す
Excel(エクセル)
-
9
Excelで、国際委電話番号表示を市外局番からの番号へ変換方法
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VLOOKUP FALSEのこと
-
if関数の複数条件について
-
【関数】=EXACT(a1,b1) a1とb1...
-
エクセルシートの見出しの文字...
-
エクセルの文字数列関数と競馬...
-
【マクロ】数式を入力したい。...
-
同じ名前(重複)かつ 日本 ア...
-
excel
-
表計算ソフトでの様式の呼称
-
エクセルでフィルターした値を...
-
エクセルのライセンスが分かり...
-
【関数】3つのセルの中で最新...
-
【マクロ】【画像あり】❶ブック...
-
【マクロ画像あり】❶1つの条件...
-
Dir関数のDo Whileステートメン...
-
セルにぴったし写真を挿入
-
Excel 日付の表示が直せません...
-
エクセルに写真が貼れない(フ...
-
LibreOffice Clalc(またはエク...
-
【マクロ】【画像あり】4つの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでフィルターした値を...
-
if関数の複数条件について
-
エクセルシートの見出しの文字...
-
excel
-
エクセルの文字数列関数と競馬...
-
VLOOKUP FALSEのこと
-
同じ名前(重複)かつ 日本 ア...
-
表計算ソフトでの様式の呼称
-
エクセルに写真が貼れない(フ...
-
【マクロ】数式を入力したい。...
-
【マクロ】実行時エラー '424':...
-
【画像あり】オートフィルター...
-
Office2021のエクセルで米国株...
-
【画像あり】【関数】指定した...
-
エクセルのVBAで集計をしたい
-
【マクロ】【画像あり】4つの...
-
【関数】3つのセルの中で最新...
-
【マクロ】excelファイルを開く...
-
LibreOffice Clalc(またはエク...
-
エクセルのライセンスが分かり...
おすすめ情報