我有這兩張表:

在 B 列上,我試圖獲取表 B 上不為空的功能的標題名稱之一。我希望它被隨機選擇。表 A 中專案的順序可能與表 B 中專案的順序不同,我在這里也需要某種 INDEX MATCH。
Excel 版本:Office 365
嘗試公式:我試圖將我的公式建立在此基礎上:
=INDEX(datarange,RANDBETWEEN(1,COLUMNS(datarange)),1)
但是還有更多的事情需要考慮,比如如果同一個水果的索引匹配不為空,那么標題名稱,所以我知道它更復雜。
任何幫助將不勝感激。
uj5u.com熱心網友回復:
假設您有 Excel 365 并且可以接受不穩定的結果:
=LET(
Fruits, Table_B[Fruit],
Properties, Table_B[[Red]:[Green]],
PropertiesHeaders, Table_B[[#Headers],[Red]:[Green]],
ThisFruit, [@Fruits],
ThisProperties, FILTER(Properties, Fruits = ThisFruit),
ThisPropertiesFiltered, FILTER(PropertiesHeaders, ThisProperties <> 0),
ThisPropertiesCount, COUNTA(ThisPropertiesFiltered),
IndexRand, RANDBETWEEN(1,ThisPropertiesCount),
IFERROR(INDEX(ThisPropertiesFiltered,IndexRand),"-")
)
ThisProperties是Table_B你的水果排。我省略了水果名稱的列。
ThisPropertiesFiltered是水果所具有的屬性的名稱。我根據水果行是否具有非零值來過濾標題名稱。
IndexRand獲取一個介于 1 和可用屬性數量之間的亂數。請注意,如果可用屬性為零,則ThisPropertiesFiltered回傳#CALC!soThisPropertiesCount將回傳 1。這將在稍后處理。
最后我們INDEX用來獲取隨機屬性名稱。IFERROR如果沒有可用的屬性,則回傳“-”。
以下是表格:
表_A:
| 水果 | 結果 |
|---|---|
| 西瓜 | 重的 |
| 瓜 | 綠 |
| 香蕉 | 熱帶 |
| 桃 | 紅色的 |
| 蘋果 | 綠 |
表_B:
| 水果 | 紅色的 | 黃色 | 熱帶 | 重的 | 綠 |
|---|---|---|---|---|---|
| 蘋果 | X | X | |||
| 香蕉 | X | X | |||
| 桃 | X | ||||
| 瓜 | X | ||||
| 西瓜 | X | X |
uj5u.com熱心網友回復:
由于您可以訪問動態陣列,您可以嘗試:

公式B2:
=LET(X,FILTER(E$1:I$1,INDEX(E$2:I$6,MATCH(A2,D$2:D$6,0),0)<>"","No Feature"),INDEX(X,RANDBETWEEN(1,COUNTA(X))))
或者沒有LET():
=@SORT(SORT(CHOOSE({1;2;3},E$1:I$1,FILTER(E$2:I$6,D$2:D$6=A2),RANDARRAY(1,5)),3,1,1),2,-1,1)
如果您正在處理實際表格,這應該會Random Feature自動將結果溢位。但是,如果不使用表格,BYROW()如果您是 365 內部人員,則可以將上述內容嵌套:
=BYROW(A2:A6,LAMBDA(r,LET(X,FILTER(E$1:I$1,INDEX(E$2:I$6,MATCH(r,D$2:D$6,0),0)<>"","No Feature"),INDEX(X,RANDBETWEEN(1,COUNTA(X))))))
這不適用于我們使用 '@' 僅決議陣列的左上角值的第二個選項(隱式交集)。
這個想法是:
INDEX()&的組合MATCH()將根據我們的輸入從查找表中“切出”感興趣的行。- 在第 2 步中,我們將
FILTER()只保留來自 herefor 回傳陣列的元素不為空的那些標題。在所有元素都為空的情況下,此函式將回傳值“No Feature”作為用戶的提示。 - 在我們的最后一步,我們結合
INDEX()使用RANDBETWEEN()。后者將回傳一個 LBound(在我們的例子中為 1)和一個 Ubound 之間的隨機整數,我們基于回傳元素的數量。
我試圖在下面形象化。

轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/341101.html
上一篇:VBA宏根據匹配的ID列替換資料
