我有25个单元格在一个5x5的网格中,目前都有公式。
=lookup(randbetween(1,400),'Word list'!$A$1:$B$400)
有没有调整公式,或者我可以加入的代码,以防止这些单元格选择相同的随机词? 所需要的结果是从一个主词列表中选出25个唯一的随机词。这些单词不能重复,应该在一个5x5的网格中显示。
我在这里找到了你问题的答案。https:/support.google.comdocsthread11579830?hl=en。基本上就是TheMaster最初的建议。
这样就不需要VLOOKUP了。 它把整个400个单词的列表(在C1:C400中)随机排序,然后查询,选出前30个(随机)单词.它在每次改变表的时候都会更新.在此基础上的一个公式是。
=ArrayFormula( QUERY(
SORT( C1:C400 ,
RANDBETWEEN( SIGN( ROW( C1:C400 ) ) , 1E+293 ),
1 ) ,
"select * WHERE Col1 <> '' limit 30" ) )
如果你的原始词表可能有重复的词, 我们也可以在查询前添加一个UNIQUE函数,以确保没有重复的词。
下面是一个样表。https:/docs.google.comspreadsheetsd1CA5ALjgxU8tOVqWMTT-CqXqdXl25TlWb73ynVAL61vwedit?usp=sharing。
如果没有达到你想要的效果,请告诉我们。
编辑:为了满足额外的要求,下面的公式将单列范围(A1:A)划分为一个5×5的值字网格。 归功于Maxim Makhrov。https:/sheetswithmaxmakhrov.wordpress.com20171226如何将每5-or-n-行--从一列到多列的转换。
=ArrayFormula(VLOOKUP(
COLUMN ( OFFSET( INDIRECT("A1") ,,,1,5) )
+
(ROW( INDIRECT("A1:A" & ROUNDUP( COUNTA(A1:A)/5 ) ) ) - 1) * 5,
{ROW(A1:A)-ROW(A1)+1,A1:A},
2,))