从 Google Sheets 到 Microsoft Excel 的公式转换

问题描述 投票:0回答:3

我使用 2 个公式来仅查找重复值并将它们列在另一张表中。但是,当我将电子表格下载为 Microsoft Excel (xlsx) 时,查询公式和数组函数在 Microsoft Excel 上不起作用。

所以我需要您有关 Microsoft Excel 的帮助。

这是我在 Google Sheets 上使用的公式。我如何在 Microsoft Excel 上执行此操作?我愿意接受其他公式或解决方案。

=INDEX( QUERY( QUERY( {'DATA'!A2:A}, "SELECT Col1, COUNT(Col1) GROUP BY Col1 ORDER BY Count(Col1) DESC"),  "WHERE Col2 > 1",0) ,,1)

测试表: https://docs.google.com/spreadsheets/d/1QJ7OLlrDg_9cZjwZFXjVFo0NHB6QvHl8MszQTYf4w2I/edit#gid=1428898146

excel google-sheets excel-formula google-sheets-formula export-to-excel
3个回答
2
投票

以您分享的例子:

=UNIQUE(FILTER(DATA!A:A,COUNTIF(DATA!A:A,DATA!A:A)>1))

但是这会很慢,因为它计算 A 列的每一行,还有空的行。

要解决此问题,我们可以使用:

=LET(data,FILTER(DATA!A:A,DATA!A:A<>""),
     u,   UNIQUE(data),
FILTER(u, MMULT(--(TRANSPOSE(data)=u),SEQUENCE(ROWS(data),,1,0))>1))

在这种情况下,我们不能使用 COUNTIF,因为这需要一个范围,但使用 LET 会将其转换为数组。因此可以使用MMULT。


1
投票

假设数据有标题,您还可以使用频率:

=LET(data,DROP(TOCOL(Data!A:A,1),1),
u,UNIQUE(data),
f,DROP(FREQUENCY(data,u),-1),
HSTACK(FILTER(u,f>1),FILTER(f,f>1)))

enter image description here

如果hstack不可用,你可以尝试:

=LET(data,DROP(TOCOL(Data!A:A,1),1),
u,UNIQUE(data),
f,DROP(FREQUENCY(data,u),-1),
CHOOSE({1,2},FILTER(u,f>1),FILTER(f,f>1)))

0
投票

基本上,要在 Excel 中复制 Google Sheets 公式,您需要采用不同的方法,因为 Excel 没有直接的 QUERY 等效项。一种方法是使用辅助列来计算出现次数。如果您的数据位于 A 列,您可以在 B 列中使用 =COUNTIF(A:A, A2) 来获取计数。

© www.soinside.com 2019 - 2024. All rights reserved.