![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
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),"")」に修正すればよいはずです。
出来ました。いつもご指導ありがとうございます。
本関数は初めて見ましたが
調べ方は スピル機能で良いでしょうか?
勉強したいと考えています
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),"")
でどうでしょう。
スピル機能の有効なバージョンでしか確認していないので、スピル機能のないバージョンだとエラーになるかもしれません。
動きました。ありがとうございます。
すいません、質問なのですが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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルの数式で教えてください。 1 2023/07/31 15:49
- JavaScript 特定の文字列を複数抜き出したいです。 関数かGAS、あるいは条件付き書式等で判別できたら教えて下さい 1 2023/09/29 22:56
- その他(プログラミング・Web制作) プログラミング pythonの問題について 2 2022/04/19 00:41
- Excel(エクセル) 【関数】選択した文字列にしたがって、文字を選んで表示する 2 2023/07/13 22:44
- Visual Basic(VBA) 先頭と末尾を指定して連続した数字を入力 1 2022/09/14 13:12
- Excel(エクセル) エクセルのマクロについて教えてください。 マクロを実行すると コピー先のフォルダ名を検索して、条件に 5 2023/10/17 21:14
- Excel(エクセル) Excelについて A1からA12まで、1月〜12月と入力し、 B1からB12の範囲に、C1とD1に 4 2022/05/26 22:48
- Excel(エクセル) エクセル 可視セル部の数値の抜き出し方法 7 2022/05/14 13:49
- その他(データベース) Accessのクエリで1フィールドの抽出条件設定をNullでなく全角半角含む空白のみの文字列でない文 1 2023/04/24 15:20
- Excel(エクセル) VBAで “:” を含むセルの特定 2 2023/05/11 16:30
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
同じ型【ハイフンと数字】をぶつけて、イコールである事を証明する関数はありますか?
Excel(エクセル)
-
Excelでの判別方法
Excel(エクセル)
-
“丸(〇/○/◯)”に似た文字…
Excel(エクセル)
-
-
4
VBA(えくせる)ってなんでメンテできない人が多いんですか?
Excel(エクセル)
-
5
Excelの関数に関する質問です
Excel(エクセル)
-
6
エクセルの関数でわからないことあるのでコード付きで教えてください
Excel(エクセル)
-
7
エクセルで相対パスの書き方を教えてください
Excel(エクセル)
-
8
IF関数
Excel(エクセル)
-
9
エクセルの表の参照値から円を取って数字で扱えるようにしたい
Excel(エクセル)
-
10
Excelのシート背景に不明な文字が表示されています。何故?
Excel(エクセル)
-
11
エクセルの書式設定について教えてください。
Excel(エクセル)
-
12
列を増やさずに、月だけの件数を求める場合
Excel(エクセル)
-
13
【マクロ】for nextステートメントがわかりません。例あり。
Excel(エクセル)
-
14
Excel関数について
Excel(エクセル)
-
15
なぜか「Nextに対応するForがありません」
Excel(エクセル)
-
16
エクセル詳しい方教えて下さい
Excel(エクセル)
-
17
Excelのテーブルでmatch関数の使い方について
Excel(エクセル)
-
18
100行50列の表で、1~40列でフィルターをかけた時41~50列での内容別の数量確認をする方法
Excel(エクセル)
-
19
SUMIFでの判定条件が異なるために正確に計算されない
Excel(エクセル)
-
20
式の解読のお願いm(_._)m
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Linux バイナリ実行できない "...
-
JavaScriptの関数の引数省略に...
-
ボタンをクリックすると数が増...
-
HTTPSのとき":"が"%3A"ではなく...
-
Excel VBA の ChangeFileAccess
-
「オブジェクトが必要です。」...
-
Boolean型配列中のTrueの有無を...
-
C# .NET DataGridView の行を追...
-
window.onloadでのfunction
-
【正規表現】【javascript】CR...
-
Vb.netのグローバル変数の宣言...
-
バイナリファイルから文字列を...
-
IEで文字の色が取得したい
-
VB6における事前バインディング...
-
複数ファイルで使うグローバル...
-
<a>タグのテキストを取得
-
この将棋プログラムに王様ゲッ...
-
同じIDで定義した要素の配列を...
-
google apps scriptの終了のさせ方
-
ActiveXobjectが作成できない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Boolean型配列中のTrueの有無を...
-
Linux バイナリ実行できない "...
-
ASP+アクセスでのSQLコメントに...
-
「オブジェクトが必要です。」...
-
Excel VBA の ChangeFileAccess
-
static constメンバ変数(配列)...
-
【Jquery】changeイベント毎にa...
-
HTTPSのとき":"が"%3A"ではなく...
-
【正規表現】【javascript】CR...
-
C# .NET DataGridView の行を追...
-
サブウインドウから親ウインド...
-
Vb.netのグローバル変数の宣言...
-
ボタンをクリックすると数が増...
-
MFCのキャプション変更
-
Perlから送信するメールのヘッ...
-
正規表現で半角数字1桁のみを全...
-
Imageコントロール vba
-
Option Strictと構造体とArrayL...
-
関数を呼び出すHTMLタグ<body o...
-
onclick指定関数の引数へローカ...
おすすめ情報