「みんな教えて! 選手権!!」開催のお知らせ

添付図のA列には、英数字と文字が入っています。(B列もですがA列のみで大丈夫です)

例:A3 H 良い     →  H
  A4 L 普通です   →  L

このように、英数字のみ取り出す関数は何かありますでしょうか?
マクロなど例はあったのですが、関数でわかりやすくできると良いな、と思います。

宜しくお願いいたします。

「セル内文章から、英数字のみ取り出す関数を」の質問画像

A 回答 (2件)

こんばんは!



関数での方法をご希望のようですが結構厄介だと思います。
お望みの方法ではないVBAになりますが、
今回の質問専用の関数(ユーザー定義関数)を作ってみてはどうでしょうか?

Alt+F11キー → メニュー → 挿入 → 標準モジュール → VBE画面のカーソルが点滅しているところに
↓のコードをコピー&ペースト → Excel画面に戻り(VBE画面を閉じて)
通常の関数のような使い方を行います。

Function Mystr(myRng As Range) 'この行から//
Dim k As Long, str As String, buf As String
For k = 1 To Len(myRng)
str = Mid(myRng, k, 1)
If StrConv(str, vbNarrow) Like "[0-9A-Za-z]" Then
buf = buf & str
End If
Next k
Mystr = buf
End Function 'この行まで

※ 使い方 ※ 
① 表示したいセルを選択
② 数式バーの左側にある「fx」のアイコンをクリック
③ 「関数の分類」の右側▼で「ユーザー定義」を選択
④ 「Mystr」が選択されている状態でOK
⑤ 入力窓で検索対象セルを選択しOK

これで英数文字のみが表示されます。

※ 保存時は「マクロ有効ブック」として保存します。m(_ _)m
    • good
    • 1

>英数字のみ取り出す関数は何かありますでしょうか?


A列のスペース部分が全角のスペースだとして・・・

抽出したいセルに =IFERROR(SUBSTITUTE(A1,RIGHT(A1,LEN(A1)-FIND(" ",A1)),""),"") とか
抽出したいセルに =IFERROR(REPLACE(A1,FIND(" ",A1),LEN(A1),""),"") などの数式で。

添付画像のB列の式は =IFERROR(SUBSTITUTE(A1,RIGHT(A1,LEN(A1)-FIND(" ",A1)),""),"")
C列の式は =IFERROR(REPLACE(A1,FIND(" ",A1),LEN(A1),""),"")
下方向へ式をオートフィルコピーします。

B列に関しては、区切り部分が何もないので・・・ (* ̄∧ ̄*;)ウーン
英数文字が必ず右側の2文字だけというのでしたら単に =RIGHT(D1,2) の式で充分なのですが、そうでもなさそうな気が・・・ (; ̄ー ̄A アセアセ・・・
「セル内文章から、英数字のみ取り出す関数を」の回答画像1
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A