如何使用函数在Excel中编写类似查询的数据库?
问题描述:
我有一些数据是这样构成的表格:如何使用函数在Excel中编写类似查询的数据库?
。
我有我的电子表格的另一个标签,让我消除任何重复的类别条目,并要连接的数据看起来像这样:
我需要使用功能和创建此不是宏或Visual Basic。我已经编写了这个函数来消除任何重复的类别条目,现在我需要弄清楚如何获取这些独特的类别并在其后面追加数据。有任何想法吗?
答
假设第一张图片来自Sheet1
,第二张图片来自Sheet2
,这里有一个办法。您需要至少将一个计算列添加到Sheet1
,并且可以将至少两个计算行添加到Sheet2
。
- 唯一标识
Sheet1
上的每一行。使用公式=B3&COUNTIF($B$3:B3,B3)
在A3
中添加新列A
并填写。您将在A3
中有first1
,first2
,A4
等等。 - 识别
Sheet2
上的每个列块。在B6
中添加新行6
并使用公式=COUNTIF($B$2:B2,B2)
填充。值将是1,1,1,2,2,2,3,3,3
。如果你喜欢,你可以手动输入它们,但它不会轻松扩展。 - 计算出
Sheet1
中每个数据项的列,并将其放入Sheet2
的列中。使用公式=MATCH(B2,Sheet1!$A$2:$E$2,0)
添加一个新行7
至Sheet2
并填充。值将是3,4,5,3,4,5,3,4,5
。我们现在知道,对于Sheet2
中的每个单元格,我们有哪个类别的实例以及数据变量来自哪个列。 - 使用
VLOOKUP
找到first1
并返回数据表中的数据列3
。在Sheet2
上,将单元格B3
设置为=VLOOKUP($A3&B$6,Sheet1!$A$2:$E$8,B$7,FALSE)
并填充并填充。 - 您将有多个
#N/A
错误(例如,单元格E4
)。如果你有一个更新版本的Excel,你可以使用IFERROR()
来逃避这个;否则,使用=IF(ISNULL(<formula>), "", <formula>)
其中<formula>
是在步骤式4
总结:
- 在源中的每个行创建一个唯一的,连续的,可计算的行ID。
- 确定目标中每列使用该序列的哪个实例。这附加到类别的末尾以确定上一步中形成的行ID。
- 确定哪个列包含目标中每列的数据。
- 使用计算的行ID查找该行并查找该数据项的相关列。
- 适当地设置结果的格式。
编辑嵌入图像。这样,如果图像从Picasa中取出,问题不会过时。 – 2012-04-05 04:53:52
我认为需要写*** *** MACRO *** – 2012-04-05 04:54:52
[Excel函数可以在工作表数据上做类似SQL的查询?](http://stackoverflow.com/questions/8756802/excel-function -to-make-sql-like-queries-on-worksheet-data) – 2012-04-05 05:42:31