回答編集履歴

3

誤字修正

2020/04/02 09:01

投稿

Y.H.
Y.H.

スコア7918

test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  普通に「=MATCH(E1,B1:B3,0)」で2が返ってきませんか?
6
6
 
7
- ワイルドカー文字が検索文字に含まれる場合`=MATCH(SUBSTITUTE(SUBSTITUTE(E1,"?","~?"),"*","~*"),B1:B3,0)`
7
+ ワイルドカー文字が検索文字に含まれる場合`=MATCH(SUBSTITUTE(SUBSTITUTE(E1,"?","~?"),"*","~*"),B1:B3,0)`
8
8
 
9
9
 
10
10
 

2

追記:コメントを受けてワールドカード文字が検索文字列に含まれる場合の記載を追記

2020/04/02 09:01

投稿

Y.H.
Y.H.

スコア7918

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

1

追記:VBA Range.FInd

2020/03/30 09:22

投稿

Y.H.
Y.H.

スコア7918

test CHANGED
@@ -7,3 +7,27 @@
7
7
  ※sheet1のE1に検索対象を入れています。
8
8
 
9
9
  ![イメージ説明](8519ef2bfe34f5062d858e65e5af1525.png)
10
+
11
+
12
+
13
+ VBAなら`Range.Find`で`2,2`が返りませんか?
14
+
15
+
16
+
17
+ ```VBA
18
+
19
+ Sub Macro1()
20
+
21
+ Dim target As Range
22
+
23
+ Set target = Range("B1:B3").Find(What:=Range("E1").Text, _
24
+
25
+ LookAt:=xlWhole, MatchCase:=True)
26
+
27
+ Debug.Print target.Row & "," & target.Column
28
+
29
+ End Sub
30
+
31
+ ```
32
+
33
+ ![イメージ説明](a61b411fb4645fd82b21f2e1c52a7fe0.png)