- ベストアンサー
Excel文字列から不要文字を削除する方法
- Excelで文字列の中から不要文字を削除する方法について教えてください。
- 具体的には、Excel 2007で各セルに入力されている文字列から、ハイフン以降の3文字を削除したいです。
- また、5桁の数字の後にハイフンがあり、それ以降に文字列が続く場合もありますが、最終的には5桁の数字だけを残したいです。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
関数でなくても編集→置換で検索文字列欄に「-*△(△はスペース)」、置換文字列欄に「-」でも可能と思いますが如何でしょうか。
その他の回答 (4)
- shorun
- ベストアンサー率42% (133/310)
12345-001 ABC株式会社 から 001 を削除して12345- ABC株式会社にするには 「001」は 001から999の範囲で附番されるとすると、 6桁目が-なので7桁目は 0から9となる。 質問のコード番号7桁目の0から9の「数字」は「数値」ではなく「文字」なので 7桁目=mid(A1,7,1)=<9 ではなく <"9"になります。 その他はNo1回答どおりなので次の式をC1セルに入力して下にコピーで良いと思います。 =LEFT(A1,6)&IF(MID(A1,7,1)>"9",RIGHT(A1,LEN(A1)-6),RIGHT(A1,LEN(A1)-9))
- keithin
- ベストアンサー率66% (5278/7941)
いろは(株)とExcelクリニックで結果が違ってるのは単なる誤記でご質問とは関係ないとして。 >中間にあるハイフン以降の3文字を削除した文字列としたい。 =REPLACE(A1,7,ISNUMBER(MID(A1,8,1)*1)*3,"") とかでいいです。
お礼
keithinさん 早速の回答有難うございます。 助かりました。 やはり「REPLACE」を使用するのですね。 他の方の回答にも使用されていましたが、「ISNUMBER」はしっかりと学習します。 ありがとうございました。
- Yu-Kuman
- ベストアンサー率0% (0/1)
追加です。 よく見ると空白があるようなので 空白を取る場合は =LEFT(A1,6) & IF(ISNUMBER(MID(A1,7,3)),TRIM(RIGHT(A1,LEN(A1)-6)),TRIM(RIGHT(A1,LEN(A1)-9))) となります。
お礼
Yu-Kumanさん 早速の回答有難うございます。 思うような結果が出て助かりました。 自分でもいろいろトライしたのですが、うまく行かずお知恵を拝借したしだいです。 文字列操作では、やはり「LEFT」「RIGHT」「MID」今回は「ISNUMBER」も出てきましたので もっと勉強しないといけませんね。 空白削除も追加していただき助かります。 どうもありがとうございました。
- Yu-Kuman
- ベストアンサー率0% (0/1)
=LEFT(A1,6) & IF(ISNUMBER(MID(A1,7,3)),RIGHT(A1,LEN(A1)-6),RIGHT(A1,LEN(A1)-9)) ではどうでしょうか? A1は調査対象のセルです。 家にはOpenOfficeしかないのでMSOfficeでもちゃんと行くと思います。 意味としては 左6文字は判断なしで取り出す。 7文字目から3文字が数字だったら右から文字全体数-6文字を取り出す。 でなかったら 右から文字全体数-9文字を取り出す。 となっております。
お礼
mu2011さん 回答いただきありがとうありがとうございます。 なっなっ何と「編集・置換」であっさりとできるとは考え及びつきませんでした。 関数ばっかりに気を取られておりました。 「眼から鱗」とはこんなことを言うのでしょうね。 他の方からも、貴重な回答をいただき、どれも満足いたしておりましたが 基本的機能で解決できたので、mu2011さんをベストとさせていただきます。 ありがとうございました。