Excel函数来对工作表数据进行类似SQL的查询?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (26)

我在Excel工作表中有一张表:

Column_1 | Column_2 | Column_3

ValueA       ValueB     ValueC
....

我需要的是一个函数,它将接受范围和一个类似SQL的查询字符串,并返回与查询匹配的一系列行,例如:

=SQL_SELECT(A1:C1000, "SELECT * WHERE Column_1 = ValueH AND Column_3 = blah")

像这样的东西存在吗?或者什么是实现自己的最佳方式?

谢谢

提问于
用户回答回答于

你可以用Get External Data(删除其名称),位于Excel 2010的“Data”选项卡中,以设置connection在工作簿中从自身查询数据。使用From Other SourcesFrom Microsoft Query连接到Excel

一旦设置好,就可以使用VBA操作connection除其他外,查看和修改驱动查询的SQL命令。这个查询是吗?引用内存中的工作簿,因此不需要保存来刷新最新数据。

这里有一个快速Sub演示访问连接对象

Sub DemoConnection()
    Dim c As Connections
    Dim wb As Workbook
    Dim i As Long
    Dim strSQL As String

    Set wb = ActiveWorkbook
    Set c = wb.Connections
    For i = 1 To c.Count
        ' Reresh the data
        c(i).Refresh 
        ' view the SQL query
        strSQL = c(i).ODBCConnection.CommandText
        MsgBox strSQL
    Next
End Sub
用户回答回答于

如果可以保存工作簿,则可以选择使用ADO和Jet/ACE将工作簿作为数据库处理,并对工作表执行SQL。

可以找到有关如何使用ADO访问Excel的MSDN信息。

扫码关注云+社区