在 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 中构建)
使用AutoFilter
s 查询您的数据(这不是 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()的主要内容,如果未能解决你的问题,请参考以下文章
如何将宏应用于 Google 表格中一个电子表格中的所有表格
在 Google Drive 中使用 Google Spreadsheets API 创建电子表格