【问题标题】:Running SQL queries in Excel在 Excel 中运行 SQL 查询
【发布时间】:2013-03-12 11:00:25
【问题描述】:

我在一家公司工作,但由于某种原因,我被甩去从事统计工作。

给了我大量的数据转储,我不得不做一些真正重复的数据按摩。

显然,第一个解决方案是为我编写一个脚本来执行此操作。我不能。我不允许将服务器下载到我的 PC 中,作为 PHP 程序员,我不能这样做。

其次,我想将这些 txt 文件导入 MySQL 数据库并对其运行查询。再说一次,我不能。我什至不允许在我的 PC 中安装 MySQL 数据库。

首先,让我描述一下我希望实现的目标。 我得到了一个数据转储,我正在尝试运行类似于以下的查询:

SELECT SUM `price` FROM <this excel sheet> WHERE `date`>`somedate` AND `type`=`sometype`

我尝试对在 Excel 上运行查询进行一些研究,这给了我不错的结果。我可以使用自动过滤器/高级过滤器来过滤掉与我无关的结果。然后我可以使用 autosum 来实现价格的总和。

然而,这是一个太漫长的过程。这比手动完成要好得多,但对我来说还不够好。我正在寻找一种编程方式来解决这个问题。

条件: 我无法将任何 apache/mySQL 服务器安装到我的 PC 中。但是,我被允许安装软件。

解决这个问题的最佳方法是什么?

【问题讨论】:

  • 你应该搜索另一家公司 LoL。无论如何,我认为 Office 可以让你做这样的事情,但只能与 Access 数据库集成。
  • 他们会让你运行 Mongoose 吗?
  • 我正在寻找另一家公司:/这太烦人了。
  • @Jodes 什么是猫鼬?
  • 这不只是sumif 还是我错过了什么?

标签: mysql reporting excel


【解决方案1】:

Excel 并不是执行“重复数据按摩”的最差工具(实际上,它通常是我处理此类任务的首选)。关键是您学习使用公式和 VBA 编程。使用 VBA,您可以在 Excel 中自动化(好吧,几乎)一切,否则您可以手动完成。像上面这样的查询需要在 VBA 中多写几行,以程序样式编写,但是您可以立即将结果存储在聚合表中,格式化它,添加一些代码以预先将转储加载到 Excel 表中等等自动化整个过程,而不仅仅是查询部分。

【讨论】:

  • 我当然没有选择 excel。如果您想讨论“如何做”,任何头脑正常的人都会在数据提取期间进行(即使用 SQL)。但是,我真的别无选择:/我不太确定我的 PC 中是否允许使用 VBA。 沮丧地拔头发但我会试一试的。
  • @HeHui:你好像有偏见。如果您安装了 Excel,您很可能已经安装了 VBA。 SQL 只会让你的“查询”部分更容易一些,我不会高估,记住整个过程。如果您只需花一分钟时间在 Google 上搜索“使用 Excel 作为数据库”,就会发现大量教程。
  • 我只能说,每个国家的工作方式都不一样。我很确定我没有安装 VBA。我错误地阅读了您的初始信息,错过了“不是”。我对excel没有偏见,我一定会尝试任何事情来简化这个过程。
  • @HeHui:打开 Excel,按“Alt-F11”并查看 VBA 编辑器是否打开 - 通常会打开。 VBA 通常是标准 Excel 安装的一部分。
  • 天哪!我有VBA!我现在要试试。但从未编写过 VB 脚本。
【解决方案2】:

您可以使用FreeSQLEditor 之类的工具与您的 Excel 文件建立 ODBC 连接。在这种情况下,您的工作表将变成表格,然后您可以对其执行查询。

更新:FreeSQLEditor 是共享软件。你可以改用ODBC Query Tool

【讨论】:

  • 我回到办公室后会试试这个。感谢您的建议。
  • 我看到只有试用版可用。我需要付费才能使用它吗?
  • 我想你会的。我只是举个例子。这是一个免费的,你可以使用sourceforge.net/projects/odbcquerytool
【解决方案3】:

您不需要 SQL-Server。您可以在 Excel 中轻松完成。

  1. 连接日期和类型。
  2. Vlookup 查找您的新主题标签(日期和类型)

这里有一个最小的例子:

https://docs.google.com/spreadsheet/ccc?key=0AgBAVSqx4789dHA2M1lQd0JaY0hidkVfQmNqbmZjX2c&usp=sharing

如果要求和,可以使用 Sumifs 函数。

【讨论】:

  • 这个问题是每周记录的数量都在变化。我正在寻找的是一个不需要告诉A1:A2034 的动态解决方案,而是知道A 列有多少条记录。
  • 但是你可以选择整列A:A,不是吗?您还可以尝试将数据导入 MS Access 并运行 SQL-Queries。祝你好运!
【解决方案4】:

您一定要试试DBxtra,它可以轻松连接到 Excel(和其他数据库),您可以针对 Excel 工作表创建 SQL 查询,就好像它们是表格一样,让您可以轻松地将数据输出回 Excel。

【讨论】:

    猜你喜欢
    • 2021-10-31
    • 1970-01-01
    • 1970-01-01
    • 2015-02-07
    • 2013-09-18
    • 2012-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多