• 締切済み

エクセルで数値以外の文字を削除する方法

エクセルで、数値と文字が入力されている列を数値だけにして、不要な文字を削除したいのですが、どのようにすればよいでしょうか?

みんなの回答

noname#52504
noname#52504
回答No.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」としたい(?)のであれば、別の話になります。 また、漢数字をどうするかも問題になりそうな気がします。 以上ご参考まで。

noname#204879
noname#204879
回答No.2

「数値と文字が入力されている列を数値だけに」とのことでしたが、 [ANo.1この回答へのお礼]では  》 「渋谷1-1-1」や「新宿1-1-1○○ビル」となっているのを  》 「1-1-1」のみにしていきたい と仰ってます。「1-1-1」は「数値だけ」ではないので、貴方の質問は無理難題だと思います。「-」の代わりに「ー」とか「ー」が使われていれば尚更のことです。

回答No.1

1. 列を選択する。 2. [編集]-[ジャンプ]-[セル選択]で、  [定数]と[文字]をチェックして、[OK]。 3. [Del]。 質問が曖昧です。もしかしたら、1つのセルに「1個」と 入力されている場合、「1」に変更したいのですか? また、「削除」はセルの内容をクリアすることですか? セル自体を削除してシフトすることですか?

zyyy
質問者

お礼

ご回答ありがとうございます。 私が質問したい内容は、1つのセルに「1個」と入力されている場合、「1」に変更したいということです。 私が行いたいのは住所の列で「渋谷1-1-1」や「新宿1-1-1○○ビル」となっているのを「1-1-1」のみにしていきたいということです。 セルの数も膨大なので、手入力ではなく、関数などで一括して変換したいのですが…

関連するQ&A