我正在尝试制作一个随机发生器,从卡片列表中挑选随机卡片(来自游戏),但我希望能够输入一些参数来过滤掉某些卡片子集。可以说每张卡都有2种类型的子集,<Rarity>
和<Colour>
。
到目前为止,我将我的生成器设置为使用Google Sheets
上的公式,如下所示:
A B C D E F G
1 Card <Rarity> <Colour> <Filter Rarity> Card <Rarity> <Colour>
===============================================================================
2 Blah1 Common Blue X <Generator formulas>
3 Blah2 Common Red X <Generator formulas>
4 Blah3 Uncommon White X <Generator formulas>
5 Blah4 Legendary Green X <Generator formulas>
在最左边的三列是具有各自细节的卡片。我想要输入所有D
值的<Rarity>
列,我希望我的公式在从A,B,C列中随机选取时忽略。
E,F,G列中的代码如下:
E
=INDEX($A$2:$A$537,LARGE(MATCH(ROW($A$2:$A$537),ROW($A$2:$A$537))*NOT(COUNTIF($E$1:E1,$A$2:$A$537)),RANDBETWEEN(1,ROWS($A$2:$A$537)-ROW(A1)+1)))
F and G just vlookups to return the values in columns B and C.
=vlookup(E2,$A$2:$C$760,2,FALSE)
我将这个公式从我以前做过的其他公式中拼凑出来,所以我不得不回去试图弄清楚如果A
中的任何一张牌都有{{1 }}匹配B
中列出的那个,那么就不应该选择它们。但我不知道最好把它放在哪里或如何。
答案 0 :(得分:1)
一种方式:
=QUERY(FILTER({A2:C537,RANDBETWEEN(SIGN(ROW(A2:A537)),1E+308)},ISNA(MATCH(B2:B537,D2:D,0))),"select Col1, Col2, Col3 where Col1 != '' order by Col4 limit 10",0)
这会附加一列随机数,过滤掉不会出现在D列中的数字,根据随机数列对前3列进行排序,以及&#34;限制10&#34;允许您指定随机选择的卡数。