我怎样才能使用函数在Excel中写入数据库查询?

我有一些像这样在表格中构build的数据:

现有的表

我的电子表格中有另一个选项卡,可以消除任何重复的类别条目,并希望连接数据如下所示:

新表

我需要使用函数不是macros或Visual Basic来创build它。 我已经写了函数来消除任何重复的类别条目,现在我需要弄清楚如何获取每个独特的类别并在其后面追加数据。 有任何想法吗?

假设第一张图片来自Sheet1和第二张Sheet2 ,这里有一个办法。 您需要将至less一个计算列添加到Sheet1和可选的两个计算行到Sheet2

  1. 唯一标识Sheet1上的每一行。 在A3添加公式=B3&COUNTIF($B$3:B3,B3)的新列A并填写。 您将在A3获得first1 ,在A4获得first1 ,等等。
  2. 识别Sheet2上的每一列。 在B6添加公式=COUNTIF($B$2:B2,B2)的新行6并填充。 值将是1,1,1,2,2,2,3,3,3 。 如果你喜欢,你可以手动input,但不会轻易缩放。
  3. 计算Sheet1中每个数据项的列,并放入Sheet2的列中。 使用公式=MATCH(B2,Sheet1!$A$2:$E$2,0)添加一个新的第7行到Sheet2并填充。 值将是3,4,5,3,4,5,3,4,5 。 我们现在知道,对于Sheet2每个单元格,我们有哪个类别的实例以及数据variables来自哪个列。
  4. 使用VLOOKUP查找数据表中的first1并返回数据列3 。 在Sheet2 ,将单元格B3设置为=VLOOKUP($A3&B$6,Sheet1!$A$2:$E$8,B$7,FALSE)然后填充。
  5. 你会有一些#N/A错误(例如单元格E4 )。 如果你有一个更新版本的Excel,你可以使用IFERROR()来逃避这个; 否则,使用=IF(ISNULL(<formula>), "", <formula>)其中<formula>是步骤4中的公式。

总结:

  • 为源中的每一行创build一个唯一的,顺序的,可计算的行ID。
  • 确定目标中每个列使用该序列的哪个实例。 这附加到类别的末尾以确定上一步中形成的行ID。
  • 确定哪个列包含目标中每列的数据。
  • 使用计算的行ID查找行,并find该数据项的相关列。
  • 格式化结果适当。