2014-01-21 33 views
0

我有一個excel問題。我有2列,在A列中,我有一個關鍵字出現在B列中的字符串中。我所要做的就是將列C中的關鍵字分配給它們出現的字符串。如何在字符串中查找單詞並賦值

例子:

enter image description here

我試圖用VLOOKUP但我仍然得到錯誤。

在此先感謝您的幫助!

回答

1

選擇C1細胞,在公式編輯欄中,按進入下一個公式CTRL + SHIFT + ENTER對其進行評估,然後拖下來:

=INDEX($A$1:$A$11,MAX(IF(ISERROR(FIND($A$1:$A$11,B1)),-1,ROW($A$1:$A$11)))-ROW($A$1)+1) 

下面是一些解釋:

1)FIND($A$1:$A$11,B1) - 這裏我們試圖檢查$A$1:$A$11的值是否在B1單元格中是值的子串。如果是的話,我們會得到B1中的一個子字符串的位置,如果不是,我們會得到#VALUE。我們在這裏得到這樣的東西:{#VALUE,#VALUE,13,#VALUE,#VALUE}

2)IF(ISERROR(FIND($A$1:$A$11,B1)),-1,ROW($A$1:$A$11))。在這裏,我們將找到的子串的位置更改爲它的行號,並將#VALUE更改爲-1。在這裏,我們得到了STN這樣{-1,-1,3,-1}

3)MAX(IF(ISERROR(FIND($A$1:$A$11,B1)),-1,ROW($A$1:$A$11)))回報3{-1,-1,3,-1} - 子

4)接下來的行數,使用INDEX()我們得到相應的價值,利用其行號

+1

優秀解。如果你可以解釋一下,這將是有幫助的,因爲這是一個複雜的公式。 –

+0

@PankajJaju,看我更新的答案:) –

+0

非常感謝!有用!雖然在Excel 2013中,公式應該用分號分隔,如下所示:= INDEX($ A $ 1:$ A $ 11; MAX(IF(ISERROR(FIND($ A $ 1:$ A $ 11; B1)); - 1; ROW($ A $ 1:$ A $ 11))) - ROW($ A $ 1)+1) –

相關問題