我试图编写一个基于数据库的简单随机化器,用于随机组合数据。这在Excel中运行得很好,但在Google中就不行了,因为没有aggregat。
我已经尝试过LARGE和MAX,但是它不是随机化的,小计也不起作用。我认为它也可以基于ROW,但可能我有一个错误的概念。
excel中的代码如下(我使用的是德语版本的Excel,但这应该是英文版本)
=TEXTJOIN(" ";TRUE;INDIRECT("A"&ROUNDUP(RAND()*AGGREGAT(14;4;(A:A<>"")*ROW(A:A);1);0));INDIRECT("B"&ROUNDUP(RAND()*AGGREGAT(14;4;(B:B<>"")*ROW(B:B);1);0));INDIRECT("C"&ROUNDUP(RAND()*AGGREGAT(14;4;(C:C<>"")*ROW(C:C);1);0)))正如我所提到的,没有aggregat,我查找的其他解决方案对我没有用。
发布于 2019-05-24 10:11:38
在Google中,有多个可以模拟AGGREGATE的公式,如QUERY、FILTER、VLOOKUP、HLOOKUP、LOOKUP、INDEX/MATCH,并且取决于其中哪一个最适合这些任务。
=INDEX(INDIRECT("A1:A"&COUNTA(A1:A)); RANDBETWEEN(1; COUNTA(A1:A)))

=INDEX({INDIRECT("A1:A"&COUNTA(A1:A))\
INDIRECT("B1:B"&COUNTA(B1:B))\
INDIRECT("C1:C"&COUNTA(C1:C))}; RANDBETWEEN(1; COUNTA(A1:A)))

={INDEX(INDIRECT("A1:A"&COUNTA(A1:A)); RANDBETWEEN(1; COUNTA(A1:A)))\
INDEX(INDIRECT("B1:B"&COUNTA(B1:B)); RANDBETWEEN(1; COUNTA(B1:B)))\
INDEX(INDIRECT("C1:C"&COUNTA(C1:C)); RANDBETWEEN(1; COUNTA(C1:C)))}

=INDEX({INDIRECT("A1:A"&COUNTA(A1:A));
INDIRECT("B1:B"&COUNTA(B1:B));
INDIRECT("C1:C"&COUNTA(C1:C))}; RANDBETWEEN(1; COUNTA(A1:C)))

=JOIN(" "; {PROPER(
INDEX(INDIRECT("A1:A"&COUNTA(A1:A)); RANDBETWEEN(1; COUNTA(A1:A))))\
INDEX(INDIRECT("B1:B"&COUNTA(B1:B)); RANDBETWEEN(1; COUNTA(B1:B)))\
INDEX(INDIRECT("C1:C"&COUNTA(C1:C)); RANDBETWEEN(1; COUNTA(C1:C)))})&"."

https://stackoverflow.com/questions/56290223
复制相似问题