2015-05-29 167 views
-3

我有通过Excel 2007中到SQL服务器的连接的数据看起来像:查询SQL服务器

A0001-A9999,X9999-X9999 | 1234 
B0001-B9999    | 5678 
C0001-C4999    | 1111 
C4500-C4999    | 1112 
C5000-C9999,D0001-D9999 | 2222 
... 

的第一列是一个值的范围,其中第二塔是值应该输出。例如:“C4000”的输入将返回“1111”,而“C4600”的输入将返回“1111,1112”。

我将如何编写代码,将允许一种形式的用户在电池上的工作表中输入任意一个输入并获得另一个单元的输出?这个想法是点击一个按钮,它可以激活一个截断数据并报告结果的宏。我很擅长编写VBA代码,并且倾向于使用它,否则我不想尝试学习SQL。

在这种情况下,用户知道要始终把一个字母后跟四个数字作为输入。我无法编辑表中的数据,只能从SQL服务器中获取数据。至于你要使用的工具

+0

我很想信息分解成更简单的形式,但不幸的是我没有更改表的权力,我只能从它拉出。因为从SQL中抽取大约26,000行数据,所以恐怕计算机在每个子行中将这些行分解为1NF会使计算时间变得疯狂。 – Michael

+0

注意你的第三和第四范围重叠:( – rheitzman

+0

什么是“从服务器获取数据意味着什么?”这是一个嵌入式的查询?或者正在用ADO使用VBA来获得数据?在一个情况下,你将不得不解析数据变成有用的信息 - 我的第一列分成“letterCode”,“LO”和“喜”,并添加行对于那些拥有多个范围 – rheitzman

回答

2

的问题是模糊的。但该解决方案不会是SQL解决方案。您始终可以在Excel中设置PowerPivot来完成此操作。