我想獲取與 Range2 中的鍵相對應的 Range1 中的所有資料。(如下圖)
但我的公式無法正確顯示資料:
=ARRAYFORMULA(TRANSPOSE(QUERY(Range1,"select Col2 where Col1 contains '"&A1:A&"'",0)))
任何人都可以幫助告訴我公式中的問題嗎?
范圍1
| 型別 | 描述 |
|---|---|
| 飲料 | 可樂 |
| 食物 | 餅干 |
| 食物 | 面包 |
| 飲料 | 啤酒 |
| 飲料 | 咖啡 |
| 食物 | 籌碼 |
Range2(理想結果)
| ColA(預設) | ColB(B1 中的陣列公式) | 柯爾克 | 寒冷的 |
|---|---|---|---|
| 食物 | 餅干 | 面包 | 籌碼 |
| 飲料 | 可樂 | 啤酒 | 咖啡 |
| 食物 | 餅干 | 面包 | 籌碼 |
| 食物 | 餅干 | 面包 | 籌碼 |
| 飲料 | 可樂 | 啤酒 | 咖啡 |
| 飲料 | 可樂 | 啤酒 | 咖啡 |
我的存在結果
| ColA(預設) | ColB(B1 中的陣列公式) | 柯爾克 | 寒冷的 |
|---|---|---|---|
| 食物 | 餅干 | 面包 | 籌碼 |
| 飲料 | (無法生成輸出) | ||
| 食物 | |||
| 食物 | |||
| 飲料 | |||
| 飲料 |
uj5u.com熱心網友回復:
假設您的源資料在 A 列和 B 列中,并且預期結果的最大列寬為 4,請嘗試:
=arrayformula(if(len(A2:A), vlookup(A2:A, regexreplace({unique(A2:A), split(trim(transpose(query(if((transpose(unique(A2:A))=A2:A)*len(A2:A),B2:B&",",),,50000))), ",")}, ",$", ), {1, 2, 3, 4}, 0),))
看看這是否有幫助?

uj5u.com熱心網友回復:
=ARRAYFORMULA(TRIM(SPLIT(TRANSPOSE(QUERY(IF(TRANSPOSE(A12:A17)=A2:A7,B2:B7&"??",),,2^9)),"??")))
大小:95 個字符
解釋:
創建一個二維陣列,比較范圍 1(
A2:A7) 與轉置范圍 2 (A2:A17)=ARRAYFORMULA(TRANSPOSE(A12:A17)=A2:A7)
| 范圍 1 v 范圍 2 -> | 食物 | 飲料 | 食物 | 食物 | 飲料 | 飲料 |
|---|---|---|---|---|---|---|
| 飲料 | 錯誤的 | 真的 | 錯誤的 | 錯誤的 | 真的 | 真的 |
| 食物 | 真的 | 錯誤的 | 真的 | 真的 | 錯誤的 | 錯誤的 |
| 食物 | 真的 | 錯誤的 | 真的 | 真的 | 錯誤的 | 錯誤的 |
| 飲料 | 錯誤的 | 真的 | 錯誤的 | 錯誤的 | 真的 | 真的 |
| 飲料 | 錯誤的 | 真的 | 錯誤的 | 錯誤的 | 真的 | 真的 |
| 食物 | 真的 | 錯誤的 | 真的 | 真的 | 錯誤的 | 錯誤的 |
將 TRUEs 更改為 Range1 Description(
B2:B7) 和一個分隔符??:=ARRAYFORMULA(IF(TRANSPOSE(A12:A17)=A2:A7,B2:B7&"??",))
| 范圍 1 v 范圍 2 -> | 食物 | 飲料 | 食物 | 食物 | 飲料 | 飲料 |
|---|---|---|---|---|---|---|
| 飲料 | 可樂?? | 可樂?? | 可樂?? | |||
| 食物 | 餅干?? | 餅干?? | 餅干?? | |||
| 食物 | 面包?? | 面包?? | 面包?? | |||
| 飲料 | 啤酒?? | 啤酒?? | 啤酒?? | |||
| 飲料 | 咖啡?? | 咖啡?? | 咖啡?? | |||
| 食物 | 薯片?? | 薯片?? | 薯片?? |
如果您在每一列中垂直查看,您將擁有每個必需標題的所有所需值。此時,我們使用經典查詢進行垂直連接:
=ARRAYFORMULA(QUERY(IF(TRANSPOSE(A12:A17)=A2:A7,B2:B7&"??",),,2^9))
| 范圍 1 v 范圍 2 -> | 食物 | 飲料 | 食物 | 食物 | 飲料 | 飲料 |
|---|---|---|---|---|---|---|
| 飲料 | 餅干?? 面包?? 薯條?? | 可樂?? 啤酒?? 咖啡?? | 餅干?? 面包?? 薯條?? | 餅干?? 面包?? 薯條?? | 可樂?? 啤酒?? 咖啡?? | 可樂?? 啤酒?? 咖啡?? |
| 食物 | ||||||
| 食物 | ||||||
| 飲料 | ||||||
| 飲料 | ||||||
| 食物 |
Now, we just TRANSPOSE and SPLIT by the delimiter:
=ARRAYFORMULA(TRIM(SPLIT(TRANSPOSE(QUERY(IF(TRANSPOSE(A12:A17)=A2:A7,B2:B7&"??",),,2^9)),"??")))
| Range 2 v | - | - | - | - | - | - |
|---|---|---|---|---|---|---|
| food | cookies | bread | chips | |||
| beverage | coke | beer | coffee | |||
| food | cookies | bread | chips | |||
| food | cookies | bread | chips | |||
| beverage | coke | beer | coffee | |||
| beverage | coke | beer | coffee |
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/326443.html
