皆様お知恵を拝借させてください
検索用を後ろの数字のみ削除する方法
この下記の条件が成立する方法を教えてください
検索用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で質問しましょう!
似たような質問が見つかりました
- Chrome(クローム) 下に出てくるリストを消したい。 2 2022/06/17 16:47
- Excel(エクセル) Excelでの検索結果を含む行だけを表示させたい 5 2023/03/10 17:08
- au(KDDI) Android Gmail で検索して消す方法 1 2022/11/10 16:10
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- Android(アンドロイド) Pixelのレコーダーで文字起こしした英文を検索する方法 4 2022/10/21 07:45
- その他(データベース) Accessのクエリで1フィールドの抽出条件設定をNullでなく全角半角含む空白のみの文字列でない文 1 2023/04/24 15:20
- UNIX・Linux bashでブランク(空白)を検索文字列として指定する方法 1 2022/04/13 22:29
- Visual Basic(VBA) WordのVBAについて 5 2023/01/11 14:38
- Google Maps iPhoneのGoogle検索窓を通常の大きさに 戻す方法を教えて頂けませんか?(切実) 日本全国の 2 2022/10/02 02:08
- その他(IT・Webサービス) 自分の「ヤフー知恵袋」の「1アカウント」対して質問数「千数百」有る場合 2 2022/06/23 04:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【関数】スペースがいくつ入っ...
-
西暦や和暦の表示をyyyymmdd表...
-
【Microsoft Office Excel Comp...
-
Excelはなんで先頭の0を消すん...
-
Excelのセルを飛ばして入力する
-
別シートからの文字を変更
-
エクセルの行の抽出について質...
-
Excelのオートフィル
-
Excel 2019 のピボットテーブル...
-
スプレッドシート クエリ関数 1...
-
excelの不要な行の削除ができな...
-
Excel初心者です。 詳しい方、...
-
【Excel】セル内の時間帯が特定...
-
Excel初心者です。 詳しい方、...
-
EXACT関数とIF関数の組み合わせ...
-
Excelのグラフ軸について
-
スマートな関数を教えて下さい。
-
Excelで全角を半角にしたいので...
-
【マクロ】エクセルにかいてあ...
-
Excel:一部のフォントでセルの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイル内にある数字の出現回...
-
Excel関数の先頭に「@」が入っ...
-
エクセルの気味悪い不思議
-
Excel VBAで、実行時にsheet上...
-
表示されている人数だけを数え...
-
他人が作ったマクロの理解
-
Excelの関数について質問です。
-
Excel 集計表
-
エクセル 日時の計算式について
-
Excelの関数に関して質問です。...
-
エクセル:セル内の文字列の下...
-
絞り込み検索
-
エクセルの関数で
-
エクセルの書式設定について教...
-
余分なEXCELファイルに印刷され...
-
VBA 同一シート内での転記の仕方
-
長期休みの関数はありますか
-
Excelの空のセル
-
エクセルで入力してある文を別...
-
Excelのマクロで、セルを結合し...
おすすめ情報
shiroutosan様の手法は私のレベル不足で活用出来ない模様でした
申し訳ございません
完成いたしましたのでご報告と後の人の為に
皆様ありがとうございました!
ベストアンサーはいち早くご回答頂けた上に採用させて頂きましたという理由で選びました