0

我正在尝试制作一个随机生成器,它从卡片列表(来自游戏)中选择随机卡片,但我希望能够输入一些参数来过滤掉某些卡片子集。假设每张卡片都有 2 种类型的子集, a<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的值B与其中列出的值匹配,D那么它们不应该被选中. 但我不确定最好放在哪里或如何放置。

4

1 回答 1

2

单程:

=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 列进行排序,“limit 10”允许您指定要随机选择的卡片数量.

于 2014-11-11T02:48:17.930 回答