
A 回答 (6件)
- 最新から表示
- 回答順に表示
No.6
- 回答日時:
No.4、5です。
MS365の環境で数式を作成してしまい、「配列数式にする」という説明を漏らしていました。
MS365および最新バージョン以外では配列数式にする必要があります。
前回回答のC1セルに記述する数式
=IFERROR(INDEX($A$1:$A$100,AGGREGATE(15,6,ROW($1:$100)/(MMULT(IFERROR(FIND(MID($B1&REPT(" ",2),COLUMN(INDIRECT("R1C1:R1C"&LEN($B1),0)),2),$A$1:$A$100),0),(ROW(INDIRECT("1:"&LEN($B1)))>0)*1)>0),COLUMN(A:A))),"")
は「CTRL+SHIFT+ENTER」で確定してください。
No.5
- 回答日時:
No.4です。
大変失礼しました。前回回答の数式(b)において、終端処理を漏らしていました。前回添付画像の例では問題ないのですが、問題が発生するケースがあります。
添付画像①をご覧ください。最低2文字一致ということは左から開始位置をずらして、2文字づつ抽出するとすれば、添付画像①のようにB2セルの右端に「関東」の文字がある場合、開始位置をずらして右端に到達すると、MID関数で2文字抽出しようとしても1文字しか抽出されず、しかもERRORにもなりません。
従って、「東」の一次が抽出され、これと一致する「東北」が抽出されてしまいます。
つまり、文字列の右終端では1文字にならないよう文字数を確保する処理しなければいけません。これを漏らしていたため、上記のような問題が発生してしまうわけです。
そこで、数式(b)を以下のように訂正します。添付画像➁をご覧ください。ご迷惑をおかけいたしました。
=IFERROR(INDEX($A$1:$A$100,AGGREGATE(15,6,ROW($1:$100)/(MMULT(IFERROR(FIND(MID($B1&REPT(" ",2),COLUMN(INDIRECT("R1C1:R1C"&LEN($B1),0)),2),$A$1:$A$100),0),(ROW(INDIRECT("1:"&LEN($B1)))>0)*1)>0),COLUMN(A:A))),"")
この数式で一致文字数を増やすのであれば、上記数式の「~REPT(" ",2)~」「~LEN($B1),0)),2~」の「2」の部分をお好みの数値に変更してください。

No.4
- 回答日時:
fujillinさんがユーザー定義関数での回答をお示しになっていますが、fujillinさんの関数は説明にあるとおり、
>最初に見つかった値を返します
ということなので、「全てを返す」を組み込み関数で考えてみました。
前提条件として、データA列、B列とも100行以下とします。
添付画像①をごらんください。C1セルに
=IFERROR(INDEX($A$1:$A$100,AGGREGATE(15,6,ROW($1:$100)/(MMULT(IFERROR(FIND(MID($B1,COLUMN(INDIRECT("R1C1:R1C"&LEN($B1),0)),1),$A$1:$A$100),0),(ROW(INDIRECT("1:"&LEN($B1)))>0)*1)>0),COLUMN(A:A))),"")・・・・・・(a)
という数式を記述し、C1~E5にコピーしています。
B1セルを例にとると、B1セルの一部(最低1文字)を含むA列のセルを全てC1セルから右方向へ表示します。
しかし、やってみると判りますが、最低1文字、つまりfujillinさんのユーザー定義関数でいうと、デフォルト状態で使用した場合、意図しないものが抽出されるのではないかという懸念がわきました。
添付画像①をみると、「東北」を含むものを探す意図なのに最低1文字にしたため、D1セルには「東」が一致する「関東」も抽出されてしまいます。
また、「関西」を含むものを探す意図なのに、同様にD2セルには「関」が一致する「関東」も抽出されてしまいます。
さらに、「中国」を含むものを探す意図なのに、同様にC4セルには「国」が一致する「四国」も抽出されてしまいます。
という訳で最低1文字は現実的でないと判断し、最低2文字の数式に修正したものが添付画像➁です。C1セルに、
=IFERROR(INDEX($A$1:$A$100,AGGREGATE(15,6,ROW($1:$100)/(MMULT(IFERROR(FIND(MID($B1,COLUMN(INDIRECT("R1C1:R1C"&LEN($B1),0)),2),$A$1:$A$100),0),(ROW(INDIRECT("1:"&LEN($B1)))>0)*1)>0),COLUMN(A:A))),"")・・・・・・(b)
という数式を記述し、C1~E5にコピーしています。
コピー範囲は右方向、下方向とも「空白」が表示されるまでオートフィルでコピーすれば良いと思います。
これで、ご質問者のご希望の状態になるのではないかと思います。
数式(a)と数式(b)を比較いただければ分かると思いますが、一致文字数を増やす場合は(a)の「1」が(b)で「2」となっている部分をお好みの数値に変更してください。

No.3
- 回答日時:
私の備忘録の中の一つの、どこかのサイトで、どなたかの昔の回答を応用したつもりなのですが、該当式は私には難解過ぎて上手に解説できません。
そういう次第なので、応用した数式を呈示するだけです。m(_._)m
貴方の希望通りの結果になるかどうか検証してみてください。
うまく動作しなかったら、その旨をお知らせください。m(_._)m
E2: =INDEX(検索文字,MATCH(TRUE,ISNUMBER(FIND(検索文字,A2)),0))
C2: =INDEX(A:A,MATCH(INDEX(検索文字,MATCH(TRUE,ISNUMBER(FIND(検索文字,B2)),0)),E:E,0))
【お断わり】上式は必何れも配列(CSE)数式として入力のこと
式を入力したら、Ctrl+Shift+Enterで確定操作をする数式です。

No.2
- 回答日時:
こんにちは
組み込み関数でやるとかなり面倒そうなので、ユーザ定義関数で処理する一例です。
使い方は、以下のようになります。
=PartialMatch(検索文字列, 対象セル範囲 [, 最低文字数])
※ ご提示の内容であれば、C1セルに
=PartialMatch(B1, A$1:A$10)
などと入力し、下方にフィルコピーすれば良いでしょう。
「対象セル範囲」の中から、「検索文字列」と部分一致する値を探し、最初に見つかった値を返します。
「最低文字数」は、連続するn文字以上のマッチを探すことを意味します。
(デフォルトは1です)
※ 事前準備として以下のコードを標準モジュールにコピペしてください。
Function PartialMatch(ByVal S0 As String, ByRef R As Range, Optional n As Long = 1) As String
Dim V0, v
Dim s() As String, i As Long
PartialMatch = ""
If n < 1 Or Len(S0) < n Then Exit Function
ReDim s(1 To Len(S0) - n + 1)
For i = 1 To UBound(s)
s(i) = Mid(S0, i, n)
Next i
V0 = R.Value
For Each v In V0
For i = 1 To UBound(s)
If InStr(v, s(i)) > 0 Then
PartialMatch = v
Exit Function
End If
Next i
Next v
End Function
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 関数EXACT(文字列,文字列)とexcelVBA 3 2022/04/14 15:07
- Excel(エクセル) エクセル VBA セルの結合 2 2022/09/07 11:48
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Excel(エクセル) 【再度】Excelの関数について教えてください。 4 2023/07/28 13:06
- Excel(エクセル) Excelの関数について教えてください。 5 2023/07/28 11:27
- Excel(エクセル) 【Excel】指定した文字列に該当する行を重複しないようにリスト 3 2022/03/30 12:27
- Excel(エクセル) エクセルの数式で教えてください。 5 2023/02/10 15:11
- Excel(エクセル) エクセル関数について教えてください 4 2023/02/05 14:47
- Visual Basic(VBA) 先頭と末尾を指定して連続した数字を入力 1 2022/09/14 13:12
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 1 2023/02/27 22:21
このQ&Aを見た人はこんなQ&Aも見ています
-
それもChatGPT!?と驚いた使用方法を教えてください
仕事やプライベートでも利用が浸透してきたChatGPTですが、こんなときに使うの!!?とびっくりしたり、これは画期的な有効活用だ!とうなった事例があれば教えてください!
-
人生最悪の忘れ物
今までの人生での「最悪の忘れ物」を教えてください。 私の「最悪の忘れ物」は「財布」です。
-
最強の防寒、あったか術を教えてください!
とっても寒がりなのですが、冬に皆さんがされている最強の防寒、あったか術が知りたいです!
-
テレビやラジオに出たことがある人、いますか?
テレビやラジオに取材されたり、ゲスト出演したことある方いますか?
-
今から楽しみな予定はありますか?
いよいよ2025年が始まりました。皆さんには、今から楽しみにしている予定はありますか?
-
2つの列を照合させてあいまい検索をしたいのですが
Excel(エクセル)
-
EXCEL関数で部分一致同士を検索する方法
Excel(エクセル)
-
エクセルの部分一致の抽出について(2つのセルの共通部分の抽出)
Excel(エクセル)
-
-
4
エクセルで比較 かつ 部分一致について
Excel(エクセル)
-
5
二つのリストを比べて部分一致する際に一致する文字列を抽出するVBA
Visual Basic(VBA)
-
6
EXCEL) 二つの列を照合して、あいまい検索をしたい
Excel(エクセル)
-
7
excel関数部分一致について教えてください。
Excel(エクセル)
-
8
VBAで文字列を数値に変換したい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
複数の文字列のいずれかが含ま...
-
Excelの入力規則で2列表示したい
-
SUMに含まれる範囲から特定のセ...
-
スペースとスペースの間の文字...
-
数式が入ったセルを含めて、数...
-
Excelでの検索結果を含む行だけ...
-
Excel上でのデータ数字が連番で...
-
エクセル セル内の文字数を超え...
-
エクセル:横長の表を改行して...
-
列の数字に100をかけたい
-
入退社日より各月末の在籍者数...
-
なぜにエラーに???
-
エクセルで曜日に応じた文字を...
-
空白行も含めてソートしたい
-
「エクセル」特定の行(セル)...
-
エクセルで、毎日の走行距離(...
-
エクセルのVLOOKUP関数について
-
エクセルで表示されている数字...
-
エクセルで既に入力済みの列の...
-
エクセルのsumifでかけ算してか...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelの入力規則で2列表示したい
-
複数の文字列のいずれかが含ま...
-
SUMに含まれる範囲から特定のセ...
-
数式が入ったセルを含めて、数...
-
Excel上でのデータ数字が連番で...
-
スペースとスペースの間の文字...
-
列の数字に100をかけたい
-
エクセルで表示されている数字...
-
エクセルでセルの値分の個数の...
-
Excelでの検索結果を含む行だけ...
-
エクセル:横長の表を改行して...
-
エクセル セル内の文字数を超え...
-
「エクセル」特定の行(セル)...
-
C列にF列の担当者(A〜)を順番...
-
別のセルに値が入力されたら、...
-
エクセルで1列全部10倍したい
-
エクセルで、毎日の走行距離(...
-
Excelのセル内文字の並び替えに...
-
エクセルで曜日に応じた文字を...
-
入退社日より各月末の在籍者数...
おすすめ情報