数据库访问excel格式或如果语句或分组

我有一个数据库格式问题,我试图连接列“B”行的列“A”行。 像这样:

https://docs.google.com/spreadsheet/ccc?key=0Am8J-Fv99YModE5Va3hLSFdnU0RibmQwNVFNelJCWHc

对不起,我无法发表图片。 我没有足够的声望点 我会尽快得到他们

所以我想在Excel或Access中解决这个问题。 它目前是一个访问数据库,但我可以轻松导出到Excel。 正如你所看到的,我想在A列中find“userid”,并且在那里有多个列A,比如“shawn”。我想把shawn和concatenate属性num的多个实例组合起来。

即使列A还有多个实例,我也可以稍后过滤表中所有唯一的实例。 我关心的是如何连接列“B” 中间如果列A有多个实例。

这只是我的一部分数据(还有很多),所以我会非常感谢你的帮助。

到目前为止,我脑海中的伪代码是:

如果(列A有多个实例)然后连接(列B用“#”+“|”+“#”)

我也想知道是否有办法做到这一点访问与分组。

那么无论如何,请帮助。

在Excel中,我们可以通过vba模块中的自定义函数轻松实现。 希望使用vba(macros)不是你的问题。

这是可以在vba中添加的function的代码。 (按Alt + F11,这将带你到可视化编辑器,右键单击项目并添加一个模块,在模块中添加下面的代码)

Public Function ConcatenatePipe(ByVal lst As Range, ByVal values As Range, ByVal name As Range) As String ConcatenatePipe = "" Dim i As Integer For i = 1 To lst.Count If name.Value = lst.Item(i).Value Then ConcatenatePipe = ConcatenatePipe & "|" & values.Item(i).Value Next ConcatenatePipe = Mid(ConcatenatePipe, 2) End Function 

这个函数可以在你的例子的F Column的excel中使用。 复制F2中的下面的单元格,复制粘贴单元格到F列的其余部分。 =ConcatenatePipe($A$2:$A$20,$B$2:$B$20,E2)

我相信你可以用SQL GROUP BY函数来解决这个问题。 至less,这里是我如何做到这一点在MySQL或类似的:

 SELECT userid, GROUP_CONCAT(propertynum SEPARATOR '|') FROM Names GROUP BY userid 

如在这个堆栈溢出所述: 如何使用GROUP BY连接MySQL中的string?

这里有一个关于如何在MS Access中使用SQL的链接: http : //www.igetit.net/newsletters/Y03_10/SQLInAccess.aspx

不幸的是,在MSAccess中没有GROUP_CONCAT函数,但是这个其他的SOpost解释了一些方法: ms-access中是否有一个group_concat函数?