如何使用列作为参数在Excel中使用参数化查询?

Jay*_*man 8 excel parameterized-query excel-external-data

我正在尝试开发一个可以在外部数据源中找到相应记录的电子表格.所以,假设我的列A带有一个标识值列表.我想开发B列,它可能会显示表中具有该值的行数.就像是:

A              B
758348    "=SELECT COUNT(*) FROM MYTABLE WHERE IDVALUE=$A$1"
173483    "=SELECT COUNT(*) FROM MYTABLE WHERE IDVALUE=$A$2"
Run Code Online (Sandbox Code Playgroud)

... 等等.所以,我以为我会使用参数化查询(其中IDVALUE =?),但这会提示我输入参数值,而不是使用左边单元格中的值.有什么方法可以做到这一点吗?

Ram*_*Ram 18

我会使用参数化查询(其中IDVALUE =?),但这会提示我输入参数值

根据您提到的我正在使用MS Query,您需要按照以下步骤操作

在Excel中进行参数化查询的步骤使用单元格值作为参数

  1. 首先转到Excel中的"数据"选项卡,然后选择"外部数据源"下的"MS查询"

MS查询

  1. 出现一个弹出窗口,要求您选择数据源.选择数据源或添加新数据源并选择它.确保取消选中Use the query wizard to create or edit queries它在大多数情况下不是很有用

数据源

  1. 然后会出现一个弹出窗口,要求您暂时添加表格选择任何表格.最好选择行数较少的表.

添加表格

  1. 然后会出现一个查询窗口,其中包含您选择的表及其数据

查询窗口

  1. 然后单击view菜单并取消选中tables.这将删除查询窗口中的图形表示,并使您更容易更改您的SQL查询

查看菜单

  1. 单击查询窗口中菜单SQL下方的按钮format.弹出窗口可以根据需要编辑查询.确保为所需的参数添加问号.

编辑查询

  1. 然后会出现一个弹出窗口,要求您输入参数值,现在输入一些有效值

参数

  1. 然后查询窗口根据输入的参数显示查询结果

结果

  1. 单击查询窗口中菜单exit下方的按钮view.然后关闭查询窗口,弹出导入数据,询问excel中的哪个位置显示结果.相应地选择

进口

  1. 然后单击左侧的"属性"按钮,然后单击"确定".将出现一个新弹出窗口,其中选择了默认用法选项卡.

属性

  1. 在此选项卡中进行所需的任何更改,然后单击Definition选项卡.单击Parameters按钮旁边弹出窗口底部的edit query按钮

定义

  1. Parameters弹出窗口显示查询中使用的参数.在这里,您必须选择Get the value from following cell单选按钮以选择单元格的值作为查询的参数.单击确定,您应该完成.

    参数值


此方法适用于没有VBA经验的人员.如果您了解VBA,请参考此答案以使用VBA实现类似的功能.

  • 不幸的是,我收到一个错误,即无法为无法用图形表示的查询创建参数。我想作为一种解决方法,我应该在数据库中创建一个视图,但是对于那些在数据库中没有适当权限的人,还有其他解决方案吗? (2认同)