回答編集履歴
1
コード追記
answer
CHANGED
@@ -7,4 +7,30 @@
|
|
7
7
|
$C$2:$C$100 は条件値の範囲
|
8
8
|
|
9
9
|
古いバージョンなら、CTRL+SHIFT+ENTER で配列数式にしたらいけるかも知れない。
|
10
|
-
(環境がないので確認はしてない。)
|
10
|
+
(環境がないので確認はしてない。)
|
11
|
+
|
12
|
+
最近のバージョンなら下記でもいける。
|
13
|
+
```EXCEL
|
14
|
+
=XLOOKUP(1,COUNTIF(A2,"*"&$C$2:$C$100&"*"),$C$2:$C$100,"",2)
|
15
|
+
```
|
16
|
+
|
17
|
+
---
|
18
|
+
|
19
|
+
VBAのサンプル
|
20
|
+
```vba
|
21
|
+
Private Sub ExtractKeyword()
|
22
|
+
Dim rng As Range
|
23
|
+
Set rng = Range("A1").CurrentRegion '表範囲
|
24
|
+
Set rng = Intersect(rng, rng.Offset(1)) '見出し行を除く
|
25
|
+
Dim c As Range
|
26
|
+
For Each c In rng.Columns(1).Cells
|
27
|
+
Dim keyword As Range
|
28
|
+
For Each keyword In rng.Columns(3).Cells
|
29
|
+
If c Like "*" & keyword.Value & "*" Then
|
30
|
+
c.Offset(, 1).Value = keyword.Value
|
31
|
+
Exit For
|
32
|
+
End If
|
33
|
+
Next
|
34
|
+
Next
|
35
|
+
End Sub
|
36
|
+
```
|