共筑中国梦大合唱歌詞:将多列数据合并为一列

来源:百度文库 编辑:偶看新闻 时间:2024/05/08 05:53:39
将多列数据合并为一列2010-10-25 14:37

       假设一个工作表中有五列数据,从A列至E列,每列中都有多行数据(其中有些数据是重复的),现在想把这些数据都依次放到A列中,并统计各数据重复出现的次数。


如果手工操作比较麻烦,通过一个VBA代码可把这些快速的完成。
按ALT+F11调出VBA窗口,在VBA窗口中按“插入-模块”,在该窗口中插入一个模块:


然后把下面的代码复制粘贴进去:

Sub 合并列()
y = 5 '本例为从A列至E列共五列,在此改成你的实际列数(第一列数据必须在A列)
s = [a65536].End(xlUp).Row 'A列的数据个数
For i = 2 To y
n = Cells(65536, i).End(xlUp).Row '得到每列的数据个数
Range(Cells(1, i), Cells(n, i)).Cut '剪切
Cells(s + 1, 1).Select
ActiveSheet.Paste '到A列粘贴
s = s + n '计算下一次粘贴位置
Next
End Sub


执行这个代码后,所有数据都到了A列中。


这时就可对这些数据使用“高级筛选”来得到不重复的数据了。
先要选中A1单元格,按右键选“插入-单元格”,在数据的最上面插入一个单元格并输入“数据”(也可用其他文字),做为A列的标题,以免影响“筛选”。
这时选中A1单元格,按“数据-筛选-高级筛选”,在出现的对话框中如下设置:


确定后,所有不重复的数据就显示在K列了。这时还可统计数据重复出现的次数,在L2单元格中输入公式 =COUNTIF(A:A,k2)
这个公式使用了countif函数来计算重复次数,此函数的用法如下:

COUNTIF
计算区域中满足给定条件的单元格的个数。
语法
COUNTIF(range,criteria)
参数含义
Range??? 为需要计算其中满足条件的单元格数目的单元格区域。
Criteria??? 为确定哪些单元格将被计算在内的条件,其形式可以为数字、表达式或文本。

把这个公式复制到L列的下面各个单元格中,就得到了K列相同行中的数据在A列中的重复次数了。
比如K2单元格的数据是S100,在L2单元格中的值是4,就表示S100这个数据在A列中出现了四次。