皆様お知恵を拝借させてください
検索用を後ろの数字のみ削除する方法
この下記の条件が成立する方法を教えてください
検索用1=aaa_bbbbbbb_01
検索用2=aaa_bbbbbbb
検索用1=検索用2
=========================
実験した手法
※以下検索用は1と2両方行っている物とお考えください
検索用=Left(検索用,inStrRev(検索用,"_"-1)
数字は消えるが文字列に数字が無いとガッツリ消える
検索用=Left(検索用,Len(検索用)-3
数字は消えるが結局文字列も消えるので・・・
==========================
よろしくお願いいたします
No.1ベストアンサー
- 回答日時:
検索用1と検索用2どちらを正(マスタ。
検索対象)とするかについてルールがあれば、決定してください。例えば、Len(検索用1)とLen(検索用2)の短い方とか。ここでは例題のように、検索用2の方が短い前提で、検索用2を正とします。
Left(検索用1,Len(検索用2))とLeft(検索用2,Len(検索用2))
を比較してください。Len関数を一致させているのがポイントです。
有難うございます!
文字数を同じにする事が出来るのですね!
ちなみに検索用1を100列30シート位比較して全部終われば検索用1を1セルずらして〜なので
検索用1a1-maxrowとe1-maxrowまでの10シート分
検索用2がd2-maxrowの30シート分有るので文字列の長さと後ろに00等付いたり付かなかったり・・・
作る人によって変わるというあるあるネタで翻弄されておりました
文字列の長さを右から3文字削った検索用1に合わせて検索用2の文字数を調整する で良いのでしょうか?
早速やってみます
No.3
- 回答日時:
ちょっと言葉を挟むようですが、
>検索用=Left(検索用,inStrRev(検索用,"_"-1)
>VBA歴2-3ヶ月
それは、VBAの話ではありませんか?関数に、逆検索の関数はなかったような気がします。
VBAでは、やり方はいくつかありますが、正規表現で数字の部分を検索させるという手がありますね。
Find 検索するけれども、その時に、ワイルドカードを使うなどします。
検索値 [*##*]
など。このようなワイルドカードで数字が入っているものを探し出し、その後、正規表現で置換をするわけです。質問の求めているものが違うなら、評価はうけないでしょうけれども、正規表現の面白さだけをピックアップさせておきます。
正規表現を使いますね。(\D+)_\d+$ → $1
もしくは、^(\D+)_\d+$ → $1
\D は数字でないもの, $ 末尾, ^ 先頭
もっと複雑なものも可能です。(日本語-オフラインヘルプは入手不可のもよう)
https://docs.microsoft.com/ja-jp/previous-versio …
Sub TestREgExp()
Dim RegEx As Object
Dim intext As String
Dim out_text As String
intext = "あいう_bbbbbbb_0123" '数値はいくつでも構わない。
Set RegEx = CreateObject("VBScript.RegExp")
With RegEx
.Global = True: .IgnoreCase = False: .MultiLine = True
.Pattern = "(\D+)_\d+$"
outtext = .Replace(intext, "$1") '出力
End With
End Sub
ありがとうございます。
また知らない知識が増えました!
VBA2ヶ月 Excel関数3か月といったところでしょうか・・・
今回は動くものが出来ましたのでそちらを採用させて頂きました(急ぎでしたので
No.2
- 回答日時:
=IF(ISNUMBER(VALUE(RIGHT(検索用,2))),LEFT(検索用,LEN(検索用)-3),検索用)
条件:対象の後ろ2文字を数値化できた(=数字だった)ら、
TRUE:対象の先頭→末尾から4文字目 までを返す
FALSE:対象をそのまま返す
検索用1,2とも出力はaaa_bbbbbbbになります。
OfficeOnlineでは動作確認しました。なお、末尾の数字の文字数が文字列によって異なる場合は使えませんのであしからず。
なるほど!有難うございます
末尾2文字が数字ならばという条件も出来るのですね(VBA歴2-3ヶ月
御二方とも作成してみてからベストアンサー決めたいと思います(どちらも目からウロコでぱっと決めれないので
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで80万行、50列位のデ...
-
ゼロを表示
-
Excelの計算が合いません。 諸...
-
Excelの警告について
-
今まで文字化けなく開けていたc...
-
EXCELの散布図で日付が1900年に...
-
エクセルでファイルの最終更新...
-
エクセルの数式バーのフォント...
-
作成した数式を値として表示し...
-
ExcelでASCを使って全角を半角...
-
Excelセルを跨いで合計を出す方法
-
Excel 大小比較演算子による「...
-
Excel関数について教えてくださ...
-
マクロの処理が遅くなった
-
エクセルで入力すると隣のセル...
-
Excel関数について教えてくださ...
-
エクセルの文字が途中から消える
-
エクセルを使用して、円周率を...
-
エクセルのセル内に分数などの...
-
条件付き書式設定で罫線を引き...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelの警告について
-
Excelで数値を時間数に変換する...
-
エクセルの数式バーのフォント...
-
エクセルで数字の組み合わせを...
-
エクセルを使用して、円周率を...
-
Excelで特定の文字列が含まれて...
-
Excel 対象のセルに入力が無い...
-
任意の値が存在する行に名前を...
-
エクセルでファイルの最終更新...
-
index関数の説明をお願いします。
-
条件付き書式でやりたいのですが
-
重複しない値を取り出したい
-
【ExcelVBA】UTF-8(BOM無)でC...
-
【マクロ】マクロが割当てされ...
-
エクセル IF計算式?でしょうか?
-
エクセルで曜日を入れたい
-
表中の指定した条件の文字列を...
-
【Excel】版が同じ事を示す番号...
-
EXCELの散布図で日付が1900年に...
-
Excelについて。Excelに縦1列に...
おすすめ情報
shiroutosan様の手法は私のレベル不足で活用出来ない模様でした
申し訳ございません
完成いたしましたのでご報告と後の人の為に
皆様ありがとうございました!
ベストアンサーはいち早くご回答頂けた上に採用させて頂きましたという理由で選びました