teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

誤字修正

2020/04/02 09:01

投稿

Y.H.
Y.H.

スコア7918

answer CHANGED
@@ -1,7 +1,7 @@
1
1
  > 「AAA」ではなく「AAAB」の位置が返ってきてしまう
2
2
 
3
3
  普通に「=MATCH(E1,B1:B3,0)」で2が返ってきませんか?
4
- ワイルドカー文字が検索文字に含まれる場合`=MATCH(SUBSTITUTE(SUBSTITUTE(E1,"?","~?"),"*","~*"),B1:B3,0)`
4
+ ワイルドカー文字が検索文字に含まれる場合`=MATCH(SUBSTITUTE(SUBSTITUTE(E1,"?","~?"),"*","~*"),B1:B3,0)`
5
5
 
6
6
  ※sheet1のE1に検索対象を入れています。
7
7
  ![イメージ説明](8519ef2bfe34f5062d858e65e5af1525.png)

2

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

2020/04/02 09:01

投稿

Y.H.
Y.H.

スコア7918

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
  ![イメージ説明](8519ef2bfe34f5062d858e65e5af1525.png)
6
8
 
7
9
  VBAなら`Range.Find`で`2,2`が返りませんか?
10
+ ※ワイルドカード文字が検索文字列に含まれる場合は邪魔くさいので ワークシート関数のFindを使った方がいいです。
8
11
 
9
12
  ```VBA
10
13
  Sub Macro1()

1

追記:VBA Range.FInd

2020/03/30 09:22

投稿

Y.H.
Y.H.

スコア7918

answer CHANGED
@@ -2,4 +2,16 @@
2
2
 
3
3
  普通に「=MATCH(E1,B1:B3,0)」で2が返ってきませんか?
4
4
  ※sheet1のE1に検索対象を入れています。
5
- ![イメージ説明](8519ef2bfe34f5062d858e65e5af1525.png)
5
+ ![イメージ説明](8519ef2bfe34f5062d858e65e5af1525.png)
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
+ ![イメージ説明](a61b411fb4645fd82b21f2e1c52a7fe0.png)