- ベストアンサー
Excelで不特定の文字列を削除する方法はある?
- Excelで不特定の文字列を削除する方法を教えてください。たとえば、特定の文字列の一部だけを残して他を削除する方法や、特定の文字列の前の数値だけを残して他は削除する方法などについて知りたいです。
- 具体的な問題として、Excelの表にある文字列の中から特定のパターンに一致する部分だけを残したいです。例えば、特定の文字列の前の数値だけを残して他は削除したい場合や、特定の文字列の後ろの数値だけを残して他は削除したい場合などです。どのようにすればこのような操作ができるでしょうか?
- Excelで特定の文字列を削除する方法について教えてください。具体的な問題として、Excelのセルに含まれる文字列から特定の文字列を削除する方法を知りたいです。たとえば、セルに「0.4331"直径 x 0.9843"厚さ / 11 直径 x 2.5 厚さ[mm]」という文字列がある場合、この中から「直径」と「厚さ」を削除して、「0.4331 x 0.9843 / 11 x 2.5 [mm]」という文字列を得たいです。どのようにすればこのような操作ができるでしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
A1セルから下方にお示しのデータがあるとしてB列には11や23.5の表示を、C列には2.5や3.5の表示をさせるとしたらB1セルには次の式を入力して下方にオートフィルドラッグします。 =TRIM(MID(SUBSTITUTE(MID(SUBSTITUTE(A1,"/",REPT(" ",100)),100,100),"直径",REPT(" ",100)),1,100))*1 C1セルには次の式を入力して下方にオートフィルドラッグします。 =TRIM(MID(SUBSTITUTE(SUBSTITUTE(MID(SUBSTITUTE(A1,"/",REPT(" ",100)),100,100),"x",REPT(" ",100)),"厚さ",REPT(" ",100)),100,100))*1
その他の回答 (3)
- kagakusuki
- ベストアンサー率51% (2610/5101)
今仮に、Sheet1のA列に元の文字列が並んでいて、別シートのA列に「右側の式の直径の前の数字」を表示し、別シートのB列に「右側の式の厚さ[mm]の前の数字」を表示しするものとします。 まず、別シートのA1セルに次の数式を入力して下さい。 =IF(ISNUMBER(REPLACE(LEFT(Sheet1!$A1,FIND("直径",Sheet1!$A1,FIND("/",Sheet1!$A1))-1),1,FIND("/",Sheet1!$A1),)*1),REPLACE(LEFT(Sheet1!$A1,FIND("直径",Sheet1!$A1,FIND("/",Sheet1!$A1))-1),1,FIND("/",Sheet1!$A1),)*1,"") 次に、別シートのB1セルに次の数式を入力して下さい。 =IF(ISNUMBER(SUBSTITUTE(REPLACE(Sheet1!$A1,1,FIND("x",Sheet1!$A1,FIND("/",Sheet1!$A1)),),"厚さ[mm]",)*1),SUBSTITUTE(REPLACE(Sheet1!$A1,1,FIND("x",Sheet1!$A1,FIND("/",Sheet1!$A1)),),"厚さ[mm]",)*1,"") そして、別シートのA1~B1の範囲をコピーして、同じ列の2行目以下に貼り付けて下さい。 以上で完成です。
- imogasi
- ベストアンサー率27% (4737/17069)
>不特定の エクセルの初心者ではあっても、小学校以来勉強してきたのだから、どういう特徴をとらえて削除したら良いのかは、エクセルを知らなくても文章で表現できることが多い。 底までは質問者が考えてみるべきだ。考えてみましたか。 それもしないで安易にWEBで他人の回答に全面に頼ってませんか。 例えば、初めての/が現れて後の次の数字(とかその後に来る数値)を取り出すとか。 (/は意味を私が誤解していたが) 其れで、関数を用いてやるのか(VBAでは少し自由が利くが、、質問者はVBAは経験ないとか)方法のことも明示すること == それとデータ例を書くときA列、B列(代表させるとして)ではっきり区別して例データを書くこと。 /で列を区切る例とするのは判りにくいので、今後はやめてほしい(文字列の質問の場合は特に)。 2列のデータ例を挙げているらしいが、「列」という言葉が質問に出てないのはおかしい。 例えばSheet1の A列・・・・・・・・・・・・・・・・・・・・・ B列 0.4331"直径 x 0.9843"厚さ 11 直径 x 2.5 厚さ[mm] 文章で表現すると A列では「直径」が現れるまでの文字(実は数字だが) B列では直径Xが現れてその次から直径の文字が現れる前まで という風に書き書くべきだ。 A列に対する式は =LEFT(A1,FIND("直径",A1)-1) B列に遅アする式は =MID(B1,FIND("x",B1)+1,FIND("厚",B1)-FIND("x",B1)-1) 例データ B列 D列(結果) 11 直径 x 2.5 厚さ[mm] 2.5 23.5 直径 x 3.5 厚さ[mm] 3.5 注意 色々こういう場合は無いものとする、という前提の式になっている。どんなj前提か勉強は課題としておくので勉強のこと。
お礼
まだまだ不慣れですみません。勉強させていただきました。 ありがとうございました。