- ベストアンサー
文字列から英数字のみを抽出する関数
- 文字列から英数字のみを抽出する関数を教えていただきたいです。
- 文字列に含まれるひらがな、カタカナ、数字、アルファベット、記号等の中から、英数字のみを取り出す関数を探しています。
- 数字だけでなく、アルファベットも含めた抽出ができる関数を知りたいです。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>数字のみを抽出する関数の説明はたくさんありますが 文字列の中に数字が「一塊だけ」ある場合の説明は多分沢山ありますが、(今回のご質問のように)「文字数字文字数字文字数字」と不定数入り混じってる場合の数式は、全く見つからなかったと思いますよ。 たとえば「英数字が最大限3カタマリまで」といった制約を付けて無理矢理関数をくっつける事は出来なくはありませんが、正直不細工ですし、そもそもあんまり現実的じゃありません。 手順: ALT+F11を押す 現れた画面で挿入メニューから標準モジュールを挿入する 現れたシートに下記をコピー貼り付ける public function myf(a) as string dim i as long for i = 1 to len(a) if mid(a,i,1) like "[0-9a-zA-Z ]" then myf = myf & mid(a,i,1) end if next i end function ファイルメニューから終了してエクセルに戻る 任意のセルに元の言葉を記入し、 =myf(A1) のように計算する。
その他の回答 (3)
- 某HN クロメート(Chromate)(@CoalTar)
- ベストアンサー率40% (705/1742)
行数分-3文字までなら対応可能です。 C列は空白セル D1セルに =IF(ISNUMBER(SEARCH(MID($A1,COLUMN(A1),1),"abcdefghijklmnopqrstuvwxyz0123456789")),C1&MID($A1,COLUMN(A1),1),C1&"") 右へオートフィル (80文字までとしてCE1セルまで) そのまま 下へオートフィル B1セルに =CE1 フィルハンドルダブルクリック
添付図参照 1.セル C1 に次式を入力して、此れを右方に(A列の最多文字数分だけの列数だけ。此処ではZ列までとした)ズズーッとドラッグ&ペースト(Fig-2) =IF(COLUMN(A1)>LEN($A1),"",IF(OR(AND(CODE(MID($A1,COLUMN(A1),1))>47,CODE(MID($A1,COLUMN(A1),1))<58),AND(CODE(MID($A1,COLUMN(A1),1))>64,CODE(MID($A1,COLUMN(A1),1))<91),AND(CODE(MID($A1,COLUMN(A1),1))>96,CODE(MID($A1,COLUMN(A1),1))<123)),MID($A1,COLUMN(A1),1),"")) 2.セル B1 に次式を入力 =C1&D1&E1&F1&G1&H1&I1&J1&K1&L1&M1&N1&O1&P1&Q1&R1&S1&T1&U1&V1&W1&X1&Y1&Z1 3.範囲 B1:Z1 を下方にズズーッとドラッグ&ペースト
補足
ご回答ありがとうございました。 A列は60文字程あるので、今回はマクロでやることにしました。 考えていただいて本当にありがとうございました。
- K Kazz(@JazzCorp)
- ベストアンサー率31% (549/1751)
エクセルのセル内の英数字のみを抽出したい http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14103368654
補足
試してみましたが、カナが残ったりしてうまくいきませんでした… ご回答ありがとうございました。
お礼
やはり、関数では厳しいようですね。 教えていただいたマクロであっさりと思うようにできました。 心から感謝いたします。 ありがとうございました。