包含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 Sources
和Microsoft Query
:
3。 接下来select(或创build)可将您连接到数据库asd的ODBC数据源select此项(您可能需要input用户名/密码)。
4。 查询devise器将要求您select一个表格,只需点击closures。
5。 接下来selectSQLbutton:
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。 现在在定义选项卡的底部有一个Parameters
button,在这里你可以填写如下:
请注意,目标单元格是您input邮政编码的单元格,如果希望在邮政编码更改时重新运行查询,请选中刷新框。
这应该是,让我知道如果它不工作。
您可以。 在工作表的VBA中,创build一个如下所示的函数:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
并在它的身体
- 检查目标是您想要查找的单元格(G1)
- 如果是这样,从数据库中获取数据并将其放在需要的地方
干杯 –