包含SQL表的Excel vlookup

我有一个Excel电子表格,我用它来计算我们销售的产品的成本,(恰巧是汽车保险)。 本产品是根据各种信息计算的; 客户年龄,邮编,车辆,职业等

我在电子表格的主选项卡中input信息,然后执行大量的vlookup公式以从电子表格的其他选项卡返回相关数字。 我的一个vlookups的例子是:

= VLOOKUP(!G1,RatesInsurerX A36:B986786,2,FALSE)

因此,这将查找我input到单元格G1中的值,并将其与名为RatesInsurerX的工作簿选项卡上的数据相匹配。

正如你可以看到这个特定的表包含近100万行,并且excel正在开始挣扎,所以我想知道是否有一种方法只是对SQL表进行查找,而不是对RatesInsurerX工作簿进行查找?

好消息是,你可以做到这一点,没有VBA ,但不less步骤如下:

1。 首先添加一个新工作表,称之为PoscodeLookup

2。 接下来转到Data并selectOther SourcesMicrosoft Query

Microsoft Query

3。 接下来select(或创build)可将您连接到数据库asd的ODBC数据源select此项(您可能需要input用户名/密码)。

4。 查询devise器将要求您select一个表格,只需点击closures。

点击关闭

5。 接下来selectSQLbutton:

SQL按钮

6。 现在inputSQL查询来获取您需要的单个值,使用示例邮编,例如:

 SELECT TOP 1 [Value] FROM [MyTable] WHERE [Postcode] = 'AB12 1AA'; 

7。 现在点击确定,然后确定应该在窗口中返回一个值。

8。 点击工具栏中的Return data

返回数据

9。 现在回到Excel提示中的命中属性:

属性提示

10。 现在改变你input的邮政编码? 在定义选项卡中:

编辑查询

11。 点击确定,再次确定,它会提示input一个值,input一个有效的邮政编码,然后按回车,现在应该给你在单元格A1中的值。

12。 现在单击单元格A1并转到Data > Properties然后Connection properties

属性

连接属性

13。 现在在定义选项卡的底部有一个Parametersbutton,在这里你可以填写如下:

参数

请注意,目标单元格是您input邮政编码的单元格,如果希望在邮政编码更改时重新运行查询,请选中刷新框。

这应该是,让我知道如果它不工作。

您可以。 在工作表的VBA中,创build一个如下所示的函数:

 Private Sub Worksheet_SelectionChange(ByVal Target As Range) 

并在它的身体

  • 检查目标是您想要查找的单元格(G1)
  • 如果是这样,从数据库中获取数据并将其放在需要的地方

干杯 –