[英]Excel: Partial matching Range 1 against each cell string individually in Range 2, then returning value in column
如果你能幫助我,我愛你。
假設我有一堆 URL:
| Range 1 |
|------------------------|
| www.orange.com |
| www.orange.example.com |
| www.example.red.com |
| www.example.com/blue |
我也有一張這樣的表:
| Range 2 | Range 3 |
|---------|---------|
| orange | 1 |
| red | 2 |
| blue | 3 |
| green | 4 |
| pink | 5 |
我如何編寫一個公式來下拉 URL 列表,使其看起來像:
| Range 1 | Results |
|------------------------|---------|
| www.orange.com | 1 |
| www.orange.example.com | 1 |
| www.example.red.com | 2 |
| www.example.com/blue | 3 |
基本上每次都進行部分匹配,然后將結果返回到右側。
快把我逼瘋了,你是我唯一的希望!
這僅在字符串不包含列表中的多個部分字符串時才有效,但您可以使用部分匹配的行號對查找數組進行INDEX
。
例如:
=IFERROR(
INDEX($B$1:$B$5, CONCAT(IFERROR(
FIND($A$1:$A$5,D5)+ROW($A$1:$A$5)-FIND($A$1:$A$5,D5),
""))),"")
在這里,我們首先生成一個向量,使用FIND
測試查找數組中所有值的位置。 這個向量中除了一個元素之外的所有元素都是#VALUE!
. 其余元素是被測試字符串中第一個與查找數組中的值相同的字符的位置。
接下來,我們通過添加另一個相等大小的連續行號向量,然后減去原始數量,將此值轉換為查找數組中的行號。 請注意#VALUE!
上的算術#VALUE!
return 仍然會產生#VALUE!
. 另請注意,上述答案中生成的行號向量( ...ROW($A$1:$A$5)
)必須從第一行開始; 例如,如果您的查找數組從第 3 行開始,您需要執行類似...ROW($A$3:$A$7)-2
才能獲得所需的結果。
最后,我們替換任何#VALUE!
返回一個空字符串並連接整個向量。 結果是包含完整字符串中的部分字符串的查找數組的行號。 此行號用於INDEX
以實現所需的結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.