在 Excel 中重新创建 Google 电子表格 QUERY()

Posted

技术标签:

【中文标题】在 Excel 中重新创建 Google 电子表格 QUERY()【英文标题】:Recreating a Google Spreadsheets QUERY() in Excel 【发布时间】:2013-04-21 19:19:47 【问题描述】:

我有一个庞大的 Excel 工作簿,用于跟踪产品标题和描述,我试图让它生成 .csv 文件,以便将这些产品导入 eBay 和我自己的网站。我已经完成了 99% 的工作,但我似乎找不到与 Google 电子表格的 QUERY() 函数等效的 Excel,并且有两个地方需要使用它:

第一,我需要使用 SheetA 中尚未在网站上列出的产品 ID 填充 SheetB 中的一列。在 Google 电子表格中,我会使用 =query('SheetA'A:B,"select A where isblank(B)") 执行此操作,但我终其一生都无法在 Excel 中找出等效项。

第二,我需要从四张不同的表中取出所有非空白行并将它们放在一张表中。

必须有一些明显的东西我错过了,但我错过了。帮助我,神奇的互联网人,你是我唯一的希望!

【问题讨论】:

在 VBA 中使用 Microsoft.ACE.OLEDB,可以在 MS-Excel 中使用 SQL。 【参考方案1】:

坏消息是 Excel 没有 QUERY() 的等效项

不太坏的消息是您可以自己滚动。

一些可能的方法:

    将数据移至数据库。您可以在数据库中完成所有操作,或者仍然使用 Excel 作为前端(例如,使用 Get External Data 查询数据库,或者全部在 VBA 中构建) 使用AutoFilters 查询您的数据(这不是 SQL 查询...)。有很多关于这种技术的 SO 示例 使用Get External Data(尽管有名称,但它可以是自引用的)查询您的数据(此 SQL 查询)请参阅this answer 了解初学者

【讨论】:

【参考方案2】:

查看用于 Excel 的第 3 方 Query() 函数的 this short video。

这里还有一个 5 秒的“hello world”gif:

要安装它,您需要QueryStorm runtime,这是一个免费的 4MB 安装程序。它就像 Excel 的包管理器。安装后,转到功能区中的 QueryStorm 选项卡,单击扩展并安装“Windy.Query”包(如视频所示)。

[免责声明] 我是第三者(QueryStorm 的作者)。

【讨论】:

【参考方案3】:

在 Excel 中使用 Power Query。尽管使用了不同的技术,但它会做同样的事情,甚至更多。转到 YouTube 并搜索 ExcelIsFun 和 MSPTDA

【讨论】:

【参考方案4】:

我也需要这样做,在 Excel 中使用 INSERT>TABLE 可以解决问题,从表中创建数据透视表,然后在添加列和/或行时将其作为数据透视表

【讨论】:

【参考方案5】:

我知道这篇文章已有 8 年历史,但如果其他人正在寻找解决方案,您可以在单元格 C2 中尝试以下公式

=INDEX('SheetA'$A$2:$A$10, SMALL(IF($D$2="", ROW($A$2:$A$10)-ROW($A$2)+1), ROW(1:1)))

这将在 SheetA A 列中查找空单元格并在 C2 单元格中显示一个值。 如果要从 B 列中提取值,请重复相同的公式,但将 'SheetA'$A$2:$A$10 替换为 'SheetA'$B$2:$B$10。

缺点: 1. 您必须将此公式复制到右侧并手动替换公式的第一位。 2. 您必须将公式复制到与 SheetA 中的值一样多的行中,以确保您不会遗漏任何值。

最后:输入公式后,按CTRL SHIFT-ENTER将其转换为数组公式。

【讨论】:

【参考方案6】:

借助 @anakac 的道具,获得了一个非常酷的第三方插件,毫无疑问,这个问题的最佳答案是 Matt 的:Power Query。有一点点学习曲线,但它是一个非常通用的工具,可以创建真正可重用和自动化的过滤结果。

【讨论】:

问题不是第三方插件产品的请求。 @JohnH Power Query 不是第 3 方

以上是关于在 Excel 中重新创建 Google 电子表格 QUERY()的主要内容,如果未能解决你的问题,请参考以下文章

Excel电子表格保存后,重新打开时原先设置的格式都没了?

如何将宏应用于 Google 表格中一个电子表格中的所有表格

在 Google Drive 中使用 Google Spreadsheets API 创建电子表格

Excel中的VBA创建带有表格和签名的电子邮件

Google Sheets API:创建电子表格或将电子表格移动到文件夹中

将图像嵌入到 Excel 电子表格 - VBA