EXCEL 如何利用陣列公式,將下圖兩列資料相關聯?

時間 2021-06-06 18:59:51

1樓:營魄抱一

之所以不能find簡單寫個公式解決,是因為find適用於單一字串查詢,可通過VBA處理,而且以後你也可以用,有興趣私聊。

2樓:第21支香菸

這個就是經常用的從詳細位址裡提取市縣區例子。

可以用FIND\SEARCHE\COUNTIF函式來判斷是否有關鍵字,再組合其它函式成陣列函式來完成,如圖:

3樓:周知之

實話說這個真想了很長時間!如下的陣列公式可以實現:

這個問題有兩個難點

難點一:右邊是一列,不是乙個單元格,如果是乙個單元格不要太簡單

難點二:匹配還不是完全一樣的,是包含的關係

公式邏輯如下:

第一步:用FIND函式把「產品通用名」I列當成陣列物件去逐個地在A2單元格中查詢,就是,FIND(Sheet2!$I$1:$I$17,A2),這裡的結果是:

陣列中第三個數值為12,就是I列對應的蛋白粉,在A2單元格查詢到了。

第二步:提取出來的陣列結果有兩個關鍵資訊,第一,陣列的第3個數值是可以去查詢到的(即代表在產品名稱裡是匹配的);第二,查詢出來的「產品通用名」位於被查詢到的單元格A2的第12個位置。

所以,我們就可以用MID函式去提取A2單元格的第12個字元開始,共提取I列第3行的長度!就是匹配出來的產品通用名,所以公式的結構主體就是MID(物件,從第幾個字元開始提取,提取多少個字元)

第三步:但是,如何將12這個數值從陣列裡提取出來呢

這個想了很久,用到了乙個強大的AGGREGATE函式,可以忽略錯誤值(等等等)去求和、求最大值、求最小值、平均值等等,至於這邊的公式為什麼為

AGGREGATE(14,6,FIND(Sheet2!$I$1:$I$17,A2),1)

就不展開了,因為很耗費篇幅,可以參見下面

Excel中的aggregate函式,你會用嗎?

反正這個結果可以將陣列的中的12提取出來。

第四步:下面就用MATCH函式將12在陣列FIND(Sheet2!$I$1:

$I$17,A2)中提取出來,位置為3,再用LEN+INDEX函式,把I列中第3行的資料的長度拿出來,作為最後MID函式的提取長度,就可以了。

4樓:郭大牛

我的建議是:不要用這種模糊匹配方式,容易出錯不說,效率太低。最好是先做乙個資料字典或者說大綱目錄一樣的東西,把你的藥品名稱做一下索引對照,比如,A藥品常用名,對應的通用名是B,類別是C這樣。

然後,就可以自由引用了。這樣做好處很多,在統計分析的時候,可以用這個資料字典或者目錄進行索引匹配。然後,後面的好多任務作特別好做,你會發覺它的妙用。

Excel列陣列如何轉置成行陣列?

小鏟子 這類問題如果涉及資料少,那就用公式解決,如果涉及資料多就用VBA如果考慮用公式解決我一般是找到資料排列規律後使用引用公式 INDIRECT函式 加單元格座標 ADDRESS COLUMN ROW函式 來處理的,涉及到位置重複則使用INT MOD函式來幫忙。我的解決方案你參考一下 模擬資料 公...

Excel中,如何用公式解決問題?

啃烤紅薯 審題不嚴審題不嚴審題不嚴。方法比較笨,是按照最基礎的邏輯堆的公式。修改後公式為 IF A2 IF B1 IF MID B1,FIND B1 1,LEN B1 FIND B1 1 LEFT B1,FIND B1 1 0,CONCATENATE LEFT B1,FIND B1 1 MID B1...

如何利用vb和access再加excel製作ERP

已知數885 VB6.0連線ACESS最簡單的辦法。只需要一分鐘 嗶哩嗶哩 乾杯 bilibili VB6.0連線ACESS最簡單的辦法。只需要一分鐘 使用者習慣的操作介面是Excel的話,用C 或VB開發Excel外掛程式是最經濟的方案。當然,技術實現不重要,重要的是對需求的把握和產品的設計。 黃...