excel如何提取特定字段,不規則,多條件?

時間 2021-06-06 19:56:05

1樓:Office培訓師谷月

在B1單元格中輸入下列公式:=LOOKUP(32767,FIND(D$1:D$3,A1),D$1:D$3)。再拖動填充到B2~B4單元格。

因為這道題把城市的名稱儲存在同一列中,我們容易聯想起LOOKUP函式的向量形式,它可以在乙個向量中尋找某個值,返回另乙個向量中處於同一位置的值。

LOOKUP函式的向量形式的語法為:

LOOKUP(lookup_value, lookup_vector, [result_vector])

lookup_value必需。LOOKUP在第乙個向量中搜尋的值。 Lookup_value 可以是數字、文字、邏輯值、名稱或對值的引用。

lookup_vector必需。 只包含一行或一列的區域。lookup_vector中的值可以是文字、數字或邏輯值。

重要:lookup_vector 中的值必須按公升序排列:..., -2, -1, 0, 1, 2, ...

, A-Z, FALSE, TRUE;否則,LOOKUP可能無法返回正確的值。 文字不區分大小寫。

result_vector可選。只包含一行或一列的區域。result_vector引數必須與lookup_vector引數大小相同。

其大小必須相同。

很顯然,D$1:D$3,也就是向量 ,構成了第三個引數result_vector。我們需要構建第二個引數lookup_vector。

這道題要求從公司名稱中提取地名,例如從「北京市東湖五金廠」中提取「北京」,我們容易聯想起FIND函式。它可以在乙個字串中查詢另乙個字串,並且返回後者在前者中的位置,如果找不到,會返回#VALUE!錯誤。

FIND函式的語法為:

FIND(find_text, within_text, [start_num])

find_text必需。 要查詢的文字。

within_text必需。 包含要查詢文字的文字。

start_num可選。 指定開始進行查詢的字元。 within_text 中的首字元是編號為 1 的字元。 如果省略 start_num,則假定其值為 1。

FIND函式的第乙個引數find_text,可以是向量或陣列。我們可以用FIND函式,依次在A1單元格中查詢「廣州」、「上海」、「北京」的位置,即FIND(D$1:D$3,A1)。

很明顯,FIND函式在這裡找不到「廣州」或「上海」,但是可以找到「北京」並返回其位置1。於是,查詢結果會臨時儲存為乙個向量 。這個向量可以充當LOOKUP函式的第二個引數lookup_vector

現在,我們把目光放到LOOKUP函式的第乙個引數lookup_value。

這個函式有乙個屬性:如果 LOOKUP 函式找不到 lookup_value,則該函式會與 lookup_vector 中小於或等於 lookup_value 的最大值進行匹配

這個函式還有乙個隱藏屬性:它會忽略第二個引數lookup_vector中的錯誤資訊,所以對於#VALUE!這樣的錯誤資訊,它只會視而不見。

我們要在此基礎上考慮容錯性的問題。假如A1單元格不是「北京市東湖五金廠」,而是「中國聯合通訊集團北京分公司」,也就是說,「北京」的位置不一定是1。窮舉一下,由於在Excel中,每個單元格最多可以輸入32767個字元,而且「北京」可能在任意乙個位置,那麼「北京」的位置將會是1~32766。

因為「北京」的位置可能是1~32766之間的任意整數,為了能讓LOOKUP找到「北京」所在的位置,我們必須把第乙個引數lookup_value設為超過32766的乙個整數,32767正好合適

[1] LOOKUP函式。https://support.

office.com/zh-cn/article/LOOKUP-函式-446D94AF-663B-451D-8251-369D5E3864CB

[2] FIND、FINDB函式。https://support.

office.com/zh-cn/article/FIND、FINDB-函式-C7912941-AF2A-4BDF-A553-D0D89B0A0628

2樓:jaffedream

這個算是典型的近似查詢問題,不需要陣列即可破之。

B1=LOOKUP(4^8,FIND(D$1:D$3,A1),D$1:D$3)

3樓:TuskAi

如果你的原資料最多隻包含乙個關鍵字,可以用陣列公式如圖B1公式

=LOOKUP(1,0/(FIND($D$1:$D$3,A1)>0),$D$1:$D$3)

輸入後按ctrl+shift+回車使其顯示花括號,下拉填充

Excel中如何查詢相同資料,並全部提取出來?

元坦村民 方法 用VLOOKUP函式,為了美觀,巢狀IFERROR函式將報錯的行顯示為空。步驟 1 將N列作為識別符號號列,欄位名稱不防取名為 識別符號號 然後對照M列的所有行在N列填充 Y 2 在L2列輸入後面的公式 IFERROR VLOOKUP B2,M N,2,FALSE 選中L2把滑鼠置於...

如何在Excel中提取指定字元內的文字?

Anyany 致力於僅用簡單的函式來組合出複雜的效果。因為複雜的函式並不會。請問所有資料都是這個符號 開頭和結尾嗎?如果是的話那很容易 其中A列為原資料,B列為 提純 後的結果。但如果是這樣的 就比較麻煩,公式如下 MID C1,SEARCH C1 1,SEARCH C1,SEARCH C1 1 S...

Excel中,如何實現提取所有不為空的單元格,並同時提取該單元格所對應的首行文字?

先說的個方法,無腦直接建立透視表 把維度放到行,第一行的字段全部放到求和項裡面生成乙個透視表然後直接使用透視表函式或者說在單元格裡面直接 透視表裡面的任意一項 GETPIVOTDATA 求和項 哈哈 J 1,維度 x 結果是這個樣子的 稍微修改一下 GETPIVOTDATA 求和項 B 11,J 1...