Google 具有大功能的工作表是否有一个好的聚合等价物?
Is there a good aggregate equivalent for Google Sheets with the large function?
我尝试编写一个基于数据库的简单随机化器来随机组合数据。这在 Excel 中工作正常,但在 Google 工作表中不行,因为没有 aggregat
我已经尝试了 LARGE
和 MAX
,但它不是随机化的,而且使用 SUBTOTAL 时它不起作用。我以为它也可以基于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
,而且我查找的其他解决方案也不适合我。
在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)))})&"."
我尝试编写一个基于数据库的简单随机化器来随机组合数据。这在 Excel 中工作正常,但在 Google 工作表中不行,因为没有 aggregat
我已经尝试了 LARGE
和 MAX
,但它不是随机化的,而且使用 SUBTOTAL 时它不起作用。我以为它也可以基于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
,而且我查找的其他解决方案也不适合我。
在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)))})&"."