- 締切済み
エクセルで数値以外の文字を削除する方法
エクセルで、数値と文字が入力されている列を数値だけにして、不要な文字を削除したいのですが、どのようにすればよいでしょうか?
- みんなの回答 (3)
- 専門家の回答
みんなの回答
ん~、もし、 「最初のアラビア数字から最後のアラビア数字までを取り出す」 ということであれば、数式で処理できないこともないですが…。 以下、A列に元の文字列が入力されているとします。 ●数式一発で取り出す場合は、少し長いですが、 B1セルを、 =MID(A1,1/MAX(INDEX(ISNUMBER(--MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))/ROW(INDIRECT("1:"&LEN(A1))),)),MAX(INDEX(ISNUMBER(--MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))*ROW(INDIRECT("1:"&LEN(A1))),))-1/MAX(INDEX(ISNUMBER(--MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))/ROW(INDIRECT("1:"&LEN(A1))),))+1) として下方にフィル。 -------------------------------------------------- ●解説も兼ねて、作業列を使う方法を示すと… B1セル:最初の数字の位置を探す =1/MAX(INDEX(ISNUMBER(--MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))/ROW(INDIRECT("1:"&LEN(A1))),)) C1セル:最後の数字の位置を探す =MAX(INDEX(ISNUMBER(--MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))*ROW(INDIRECT("1:"&LEN(A1))),)) D1セル:文字数を計算する =C1-B1+1 E1セル:対象文字列を取り出す =MID(A1,B1,D1) としてB1:E1を下方にフィル -------------------------------------------------- ただし、上記はあくまで「最初の数字から最後の数字まで」なので、 例えば「○○1丁目23番地××ビル456号」であれば 「1丁目23番地××ビル456」を返します。 文字通りに「数字のみを取り出したい」 つまり、上記を「123456」としたい(?)のであれば、別の話になります。 また、漢数字をどうするかも問題になりそうな気がします。 以上ご参考まで。
「数値と文字が入力されている列を数値だけに」とのことでしたが、 [ANo.1この回答へのお礼]では 》 「渋谷1-1-1」や「新宿1-1-1○○ビル」となっているのを 》 「1-1-1」のみにしていきたい と仰ってます。「1-1-1」は「数値だけ」ではないので、貴方の質問は無理難題だと思います。「-」の代わりに「ー」とか「ー」が使われていれば尚更のことです。
- shikisaito
- ベストアンサー率52% (257/491)
1. 列を選択する。 2. [編集]-[ジャンプ]-[セル選択]で、 [定数]と[文字]をチェックして、[OK]。 3. [Del]。 質問が曖昧です。もしかしたら、1つのセルに「1個」と 入力されている場合、「1」に変更したいのですか? また、「削除」はセルの内容をクリアすることですか? セル自体を削除してシフトすることですか?
お礼
ご回答ありがとうございます。 私が質問したい内容は、1つのセルに「1個」と入力されている場合、「1」に変更したいということです。 私が行いたいのは住所の列で「渋谷1-1-1」や「新宿1-1-1○○ビル」となっているのを「1-1-1」のみにしていきたいということです。 セルの数も膨大なので、手入力ではなく、関数などで一括して変換したいのですが…