- ベストアンサー
末尾の数字を文字列から消去する
office2010 A列に8桁の文字列が複数行入っています。 A1B00001 A1CB0002 A1NDE302 … この状態で後側の数字(一番最後の英の文字列を残す)を消去したいです。 消去された文字列はB列に表示。 上記の場合 A1B A1CB A1NDE … をB列に表示する方法を教えていただきたく。 関数、VBAどちらでも可です。 数字だけを消去というのはWEBで探せたのですが、英と英の間の数字は残したいのです。
- 3620313
- お礼率84% (217/257)
- Excel(エクセル)
- 回答数6
- ありがとう数6
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
これはユーザ関数を作ってしまった方が楽だと思います。 Function fSample(sTarget As String) As String fSample = "" For i = Len(sTarget) To 1 Step -1 sOne = Mid(sTarget, i, 1) If IsNumeric(sOne) = False Then fSample = Left(sTarget, i) Exit For End If Next i End Function
その他の回答 (5)
- msMike
- ベストアンサー率20% (363/1775)
B1: =LEFT(A1,SMALL(IF(ISNUMBER(1*MID(A1,COLUMN(A:H),1)),COLUMN(A:H),""),2)-1) 【お断り】上式は必ず配列数式として入力のこと
お礼
回答ありがとうございます。 サンプル試しましたが、 H2000000の結果がH2 BHD00000の結果がBHD0 と数字が残ってしまいます。
- bunjii
- ベストアンサー率43% (3589/8248)
>A列に8桁の文字列が複数行入っています。 > ・・・・中略・・・・ >をB列に表示する方法を教えていただきたく。 A1セルの文字列を処理してB1列へ代入する数式は下記のようになります。 =LEFT(A1,MAX(INDEX((CODE(MID(A1,COLUMN(A1:H1),1))>57)*COLUMN(A1:H1),0)))
お礼
ステキです、ありがとうございます。
- mt2015
- ベストアンサー率49% (258/524)
ごめんなさい、ANo.3だと7ケタですね。 8ケタに訂正します。 =LEFT(A1,MAX(ISERROR(1*MID($A1&"00000000",COLUMN(A1:H1),1))*COLUMN(A1:H1))) これをCtrl+Shift+Enterで確定してください。
お礼
ステキです、ありがとうございます。
- mt2015
- ベストアンサー率49% (258/524)
ANo.2です 演算式でやるならB2に↓の式を入れ、Ctrl+Shift+Enterで配列数式として確定 =LEFT(A1,MAX(ISERROR(1*MID($A1&"00000000",COLUMN(A1:G1),1))*COLUMN(A1:G1)))
お礼
回答ありがとうございます。
- aokii
- ベストアンサー率23% (5210/22062)
T列に表示させた場合ですが、以下の方法でいかがでしょう。 BからI列に =MID($A1,COLUMN(B1)-1,1) JからQ列に =IF(ISERR(B1+0),"a",B1+0) R列に =Q1&P1&O1&N1&M1&L1&K1&J1 S列に =10-FIND("a",R1) T列に =LEFT(A1,S1-1)
お礼
回答ありがとうございます。 考え方、参考になりました。 ちょっと作業列を多く使用するのが、難点でした。
関連するQ&A
- 文字列に数字を含むセルを調べたい
Excel2007を使っています。 A列の文字列に数字を含む場合、B列に「含む」と表示させたいです。 どういった関数でできるのでしょうか? A列 B列 ABC1 含む DEFG 23HIJK 含む I4M5N 含む OPQ RSTUV W6X 含む 7YZ8 含む
- ベストアンサー
- オフィス系ソフト
- 15文字を超える文字列のランク付け方法
いつもお世話になっております。 Office2007にて、ExcelVBAでプログラムを組んでいるのですが、 現在、15文字を超える文字列の並べ替えについていい方法が浮かばず 悩んでおります。 例えば、以下のケースにおいて、B列に、A列の長い文字列の大小関係を 判定して、RANK関数のように順位を表示させたいのですが、名案が中々 浮かびません。文字列長15桁を超えてしまうと、様々な関数が機能しないようです。 A B 1234567890123456789012345678901234567890 0987654321098765432109876543210987654321 6789012345678901234567890123456789012345 ・・・ ⇒ A B 1234567890123456789012345678901234567890 2 0987654321098765432109876543210987654321 1 6789012345678901234567890123456789012345 3 ・・・ 昨日半日悩んでしまい非常に困っています。 どなたかご教授いただければ幸いです。
- ベストアンサー
- Excel(エクセル)
- Excel2000のセル内の文字列の数字の先の2桁を取り出す方法について
年のいった初心者です。 以前の質問に対する回答有難うございます。また、教えてください。 エクセル2000です。セル内に数字の文字列で、4桁、6桁、8桁のものが有ります。4桁のものには"01"を、6桁のものには"60"を、表示し、8桁のものには数種類あり、8桁の場合は、各文字列で上位の2桁を表示したいのです。 =IF(LEN(A1)=4,"01",IF(LEN(A1)=6,"60",IF(LEN(A1)=8,?????? 4桁、6桁については以前に教えていただいた、関数等でいけたのですが、8桁のときが分かりません。困っています。お願いします。 A列 B列 1 7532 →→ 01 2 280573 →→ 60 3 34964821 →→ 34 4 06839775 →→ 06 5 67500023 →→ 67
- ベストアンサー
- オフィス系ソフト
- 文字列から数字をカウント
エクセルバージョン2007 A列に以下の文字列が有る場合、数字の一塊のカウントではなく、文字列に入っています "0,1,2,3,4,5,6,7,8,9" それぞれをカウントする関数をご教授頂ければ幸いです。 12345-67890 → B列に 10 と表示 2aa-12345-00 → B列に 8 と表示 1bb → B列に 1 と表示 以上、宜しくお願い致します。
- ベストアンサー
- Excel(エクセル)
- 数字と文字列から数字のみ取り出したい
下記のような数字と文字の組み合わさった文字列から数字のみを取り出したいのですが、 基準となる文字もなく、数字の桁、文字数もバラバラで、さらに文字部分にも数字が 入っていて調べた数式が使えず困っています。 (例1)109778大倉山マンション第3⇒109778 を取り出したい (例2)13482マックハイム綱島第10 ⇒ 13482 を取り出したい (例3)12896ハイム大倉山⇒12896 を取り出したい (例4)1198藤和シティコープ大倉山太尾町A棟⇒1198を取り出したい 調べた数式=LEFT(A1,LEN(A1)*10-SUM(LEN(SUBSTITUTE(A1,{0,1,2,3,4,5,6,7,8,9},)))) 上記の数式だと(例1)(例2)の場合、建物名の数値を反映してしまい数値のみ取り出せません。 数値部分はみたところ4~6桁でした。 何か良い数式がありましたら、ご教授願います。
- ベストアンサー
- オフィス系ソフト
- エクセル 特定の文字列の消去について
ある資料Aから、 ある資料Bの文字列を全部消去したいと思っています。 つまり資料Aの文字列から、 Bの文字を抜き出すわけですが Bの資料にはAから削除したい文字が複数フィールドあります。 データ量が多いため、一列にすることが現実的ではないため、 Substituteのようなコラム処理を複数コラムをもとにできるのかどうか、 知識のある方いらっしゃいましたらアドバイスよろしくお願いします。 添付画像のように、 Aにはコラムが一つだけ Bにはコラムが3つあり、 Bのすべてのコラムの文字列をAから消去したいです。 Bの1行目の文字列が Aの違う行に出てきても消去の対象としたいです。 よろしくお願いします。
- 締切済み
- Excel(エクセル)
- エクセル 文字列から数字だけを抽出
エクセル2016の操作について教えて下さい。 セル内の文字列から数字だけを抽出したいです。 例えばAの列にこのような文字列が入っているとします。 高度5km 高度10.1km この中の数字だけを取り出して隣のB列の同じ行に数字だけを表示させる方法がありましたら教えて下さい。 宜しくお願いします。
- ベストアンサー
- Excel(エクセル)
- Excel セル内の文字列の数字の桁数を増す方法について
エクセル2000にて、セル内に4桁、6桁、7桁、8桁の文字列の数字が、別々に入っているとき、文字列の数字が7桁の時のみ 0 を書き加えて、8桁にする方法を教えてください。 例)A1 4001 33000018 6200095 →06200095 6100092 →06100092 4176 200025 6100061
- ベストアンサー
- オフィス系ソフト
- 列に含まれる同じ文字列をカウントし、表示させる方法を教えてください。
簡単な質問かもしれませんが、どうかお願い致します。 A B C D E F G 5桁 2桁 5桁 カウント 2桁 カウント 11111 11 11111 11 11111 11 11111 11 11121 11 11121 11 12111 12 13111 13 上記のような A列には5桁の数字 B列には2桁の数字 エクセルのデータがあるとして、 まず、A列で同じ数字をカウントし、 A B C D E F G 5桁 2桁 5桁 カウント 2桁 カウント 11111 11 11111 4 11111 11 11121 2 11111 11 12111 1 11111 11 13111 1 11121 11 11121 11 12111 12 13111 13 のように表示させたいのですが、どうしたらいいかわかりません。 データが膨大で数字がランダムな為、CountIfは使えないんだと思いますが、素人なので、詳しくはわかりません。 また、B列が何なのかと言いますと、A列の上2桁が入っています。 なぜ必要かなんですが、理由があります。 A列で5桁でカウントした個数が2以下の場合、5桁ではカウントせずに、2桁でカウントするという風にしたいのです。 しかも、5桁でカウントし、3以上だった数字については2桁ではカウントしない様にしたいんです。 要するに、最終的に A B C D E F G 5桁 2桁 5桁 カウント 2桁 カウント 11111 11 11111 4 11 2 11111 11 12 1 11111 11 13 1 11111 11 11121 11 11121 11 12111 12 13111 13 のように表示させたいんです。 長々とすみません。 ご指導のほど、よろしくお願いいたします
- 締切済み
- Visual Basic
お礼
回答ありがとうございます。 他の方々にも、いろいろ事例を紹介いただきましたが、mt2015さんの事例が、私の知らなかったユーザ関数というもので、今後いろいろ活用できそうなので、こちらをベストアンサーとさせていただきます。