回答編集履歴
3
誤字修正
answer
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
> 「AAA」ではなく「AAAB」の位置が返ってきてしまう
|
2
2
|
|
3
3
|
普通に「=MATCH(E1,B1:B3,0)」で2が返ってきませんか?
|
4
|
-
ワイルドカー
|
4
|
+
ワイルドカード文字が検索文字に含まれる場合`=MATCH(SUBSTITUTE(SUBSTITUTE(E1,"?","~?"),"*","~*"),B1:B3,0)`
|
5
5
|
|
6
6
|
※sheet1のE1に検索対象を入れています。
|
7
7
|

|
2
追記:コメントを受けてワールドカード文字が検索文字列に含まれる場合の記載を追記
answer
CHANGED
@@ -1,10 +1,13 @@
|
|
1
1
|
> 「AAA」ではなく「AAAB」の位置が返ってきてしまう
|
2
2
|
|
3
3
|
普通に「=MATCH(E1,B1:B3,0)」で2が返ってきませんか?
|
4
|
+
ワイルドカート文字が検索文字に含まれる場合`=MATCH(SUBSTITUTE(SUBSTITUTE(E1,"?","~?"),"*","~*"),B1:B3,0)`
|
5
|
+
|
4
6
|
※sheet1のE1に検索対象を入れています。
|
5
7
|

|
6
8
|
|
7
9
|
VBAなら`Range.Find`で`2,2`が返りませんか?
|
10
|
+
※ワイルドカード文字が検索文字列に含まれる場合は邪魔くさいので ワークシート関数のFindを使った方がいいです。
|
8
11
|
|
9
12
|
```VBA
|
10
13
|
Sub Macro1()
|
1
追記:VBA Range.FInd
answer
CHANGED
@@ -2,4 +2,16 @@
|
|
2
2
|
|
3
3
|
普通に「=MATCH(E1,B1:B3,0)」で2が返ってきませんか?
|
4
4
|
※sheet1のE1に検索対象を入れています。
|
5
|
-

|
5
|
+

|
6
|
+
|
7
|
+
VBAなら`Range.Find`で`2,2`が返りませんか?
|
8
|
+
|
9
|
+
```VBA
|
10
|
+
Sub Macro1()
|
11
|
+
Dim target As Range
|
12
|
+
Set target = Range("B1:B3").Find(What:=Range("E1").Text, _
|
13
|
+
LookAt:=xlWhole, MatchCase:=True)
|
14
|
+
Debug.Print target.Row & "," & target.Column
|
15
|
+
End Sub
|
16
|
+
```
|
17
|
+

|