
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
回答の数式のうち、入口となる部分は、文字列の中から1文字づづ抽出する
=MID(A1,ROW(INDIRECT("$1:$"&LEN(A1))),1)・・・①
の部分です。
上記数式で1文字づつ抽出して、その後で、数字かハイフンかどちらでもないかを判定し、判定結果を2と1と0とに変換してCONCAT関数で再度結合するという作業を行っています。
この結合する部分でスピル機能が必要になるのではないかと思った訳であって、この数式がスピル機能を体現しているものではありません。
従って、スピル機能で調べても回答の数式にたどりつきません。
回答の数式は、上記①の部分と
=CONCAT(配列)・・・②
および
=FIND(検索文字,~)・・・③
の組合せで出来ていますので、①②③について、お調べになってください。
No.4
- 回答日時:
No.3です。
前回回答の数式中の「FIND("22122221222212",~)」の部分は、ご質問者が例示された「10-1234-1234-1」の数字を2に,‐を1に変換したものです。
従って、ご質問者のいう15桁の「●●-●●●●-●●●●●-●」という形であれば、「221222212222212」とすればよいので、前回回答の数式の「FIND("22122221222212",~)」の部分を「FIND("221222212222212",~)」として、数式末尾の「,14),"")」の部分を「,15),"")」に修正すればよいはずです。
この回答へのお礼
お礼日時:2024/02/16 08:33
出来ました。いつもご指導ありがとうございます。
本関数は初めて見ましたが
調べ方は スピル機能で良いでしょうか?
勉強したいと考えています
No.3
- 回答日時:
A列に対象文字列があるとして、A1セルの数式を考えてみました。
=IFERROR(MID(A1,FIND("22122221222212",CONCAT(2-ISERROR(MID(A1,ROW(INDIRECT("$1:$"&LEN(A1))),1)*1)*2+(MID(A1,ROW(INDIRECT("$1:$"&LEN(A1))),1)="-"))),14),"")
でどうでしょう。
スピル機能の有効なバージョンでしか確認していないので、スピル機能のないバージョンだとエラーになるかもしれません。
この回答へのお礼
お礼日時:2024/02/15 08:10
動きました。ありがとうございます。
すいません、質問なのですが14⇒15ケタに変更
以下のようにするには、どこをいじれば良いでしょうか。
お手すきな時に、宜しくお願いします
●●-●●●●-●●●●●-●
No.2
- 回答日時:
No1です。
>関数やマクロにて、~~
というご質問でしたので、マクロでの回答をしましたが、どうやらわからない方のようなので・・
A1セルに対象文字列があるとして
=IFERROR(MID(A1,FIND("11211112111121",TEXTJOIN("",0,INDEX((47<CODE(MID(A1,ROW(OFFSET(A$1,,,LEN(A1))),1)))*(CODE(MID(A1,ROW(OFFSET(A$1,,,LEN(A1))),1))<58)+(MID(A1,ROW(OFFSET(A$1,,,LEN(A1))),1)="-")*2,))),14),"")
とかでも可能と思います。
※ TEXTJOIN関数を使えるバージョンが前提です。
No.1
- 回答日時:
こんばんは
関数でもできるでしょうけれど、面倒なので、ユーザ定義関数で正規表現を利用するのが簡単だと思います。
ごく簡単な一例としては、
Function hoge(s As String) As String
Dim re, m
Set re = CreateObject("VBScript.RegExp")
re.Pattern = "\d{2}-\d{4}-\d{4}-\d"
Set m = re.Execute(s)
If m.Count Then hoge = m(0).Value Else hoge = ""
End Function
みたいな感じでしょうか。
上記だと
9910-1234-1234-1999
みたいなものからも、10-1234-1234-1 を抜き出しますので、それではまずい場合には、パターンを調整してください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
同じ型【ハイフンと数字】だけ...
-
【正規表現】【javascript】CR...
-
class指定したHTML要素の背景色...
-
onclick指定関数の引数へローカ...
-
C#OpenCv V4にのエラーに関する...
-
appendChildがieだとできない??
-
GASでundefinedエラーが出ます
-
C#で、ContextMenuStripに動的...
-
window.openでタイトル名の指定
-
javascriptを使ったページ内の...
-
pdfに丸秘などのスタンプを...
-
配列の格納
-
任意の座標をクリックさせるには
-
XMLでのAttributeを持ったNode...
-
カラー表記の足し算プログラム
-
jqueryでRSS内のdc:dateなどの...
-
重い処理とはどのようなものが...
-
getElementByIdを使用したグロ...
-
JavaScriptからPHPに配列を渡す...
-
船のゲームを作っているのです...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ボタンをクリックすると数が増...
-
【正規表現】【javascript】CR...
-
同じ型【ハイフンと数字】だけ...
-
ASP+アクセスでのSQLコメントに...
-
HTTPSのとき":"が"%3A"ではなく...
-
サブウインドウから親ウインド...
-
confirmの連続?
-
VC++のちらつき防止方法
-
Boolean型配列中のTrueの有無を...
-
Vb.netのグローバル変数の宣言...
-
コールバック関数(?)をループし...
-
javascriptで文字挿入でtoggle...
-
【Jquery】changeイベント毎にa...
-
ifreamをリロードしたい
-
Excel VBA の ChangeFileAccess
-
MFCのキャプション変更
-
Linux バイナリ実行できない "...
-
-(ハイフン)_(アンダーバー)の...
-
2次元のJSON形式の配列の展開
-
C# .NET DataGridView の行を追...
おすすめ情報