怎么判断excel一列数据中是否有顺序相同的一组数据?

有一列1200左右的数据,我需要判断最后15行按这顺序出现的这组数据,在前面1185行中是否出现,顺序也要一样。如出现,则显示。如下表,1186-1200行的顺序是“BAAABBABBAAAAAA”。
1186 B
1187 A
1188 A
1189 A
1190 B
.....
1199 A
1200 A
在我表格数据中有400多列,每列1200行,目测比对,十分困难,如有高手帮助,愿重金酬谢!!QQ:50983569

第1个回答  2012-03-13
假定你的数据在A1:A1200,我暂时能想到的简便办法是:
B15输入“=A1&A2&A3&A4&A5&A6&A7&A8&A9&A10&A11&A12&A13&A14&A15”
复制B15至B1185
在一空单元格输入
=COUNTIF(B15:B1185,A1186&A1187&A1188&A1189&A1190&A1191&A1192&A1193&A1194&A1195&A1196&A1197&A1198&A1199&A1200)
返回TRUE出现过,返回FALSE没出现过。

这么说,你首先要在空白单元格输入
=A1&A2&A3&A4&A5&A6&A7&A8&A9&A10&A11&A12&A13&A14&A15
然后把这个单元格剪切到另一张表格的A1,复制A1到A1185,再复制到400多列。
回到原始表,在空白单元格输入
=A1186&A1187&A1188&A1189&A1190&A1191&A1192&A1193&A1194&A1195&A1196&A1197&A1198&A1199&A1200
剪切这个单元格到新表的A1186,再复制到400多列。
A1187输入
=COUNTIF(A1:A1185,A1186),向右复制400多列,检查TRUE和FALSE。估计计算时要花费些时间。追问

我的数据行数会增加,每两天增加1 行,会变成1201行,1202行,1203行........,你的方法还有更简单的吗?我的表格有400多列。帮帮我,如能简单操作,我定重谢您!!

追答

你的数据都是什么内容?数值还是文本?长度有多少?多给点信息好吗?

追问

数据是文本,就是一个字母或中文,比如是A或C或“安”、“他”。最好是设计好公式,然后一拉得。如果行数多了会影响你处理的话,也可改成300行,我不比对那么多。但是动态的,会增至301行,302行,。。。。。。那最后的15行会变的。共462列,列数不增减。如有软件也帮我介绍介绍。

追答

在新表显示吧,这样不会影响数据表增加数据。假定数据表名为Sheet1,在新表A1输入公式
横向查看
=(LEN(PHONETIC(OFFSET(Sheet1!A1,,COLUMN()-1,COUNTA(Sheet1!A:A),1)))-LEN(SUBSTITUTE(PHONETIC(OFFSET(Sheet1!A1,,COLUMN()-1,COUNTA(Sheet1!A:A),1)),PHONETIC(OFFSET(Sheet1!A1,COUNTA(Sheet1!A:A)-15,COLUMN()-1,15,1)),"")))/15-1
把这个公式向右拖动,直至达到数据表的列数
纵向查看
=(LEN(PHONETIC(OFFSET(INDIRECT(ADDRESS(1,ROW(),,,"sheet1")),,ROW()-1,COUNTA(INDIRECT("sheet1!"&CHAR(ROW(A66))&":"&CHAR(ROW(A66)))),1)))-LEN(SUBSTITUTE(PHONETIC(OFFSET(INDIRECT(ADDRESS(1,ROW(),,,"sheet1")),,ROW()-1,COUNTA(INDIRECT("sheet1!"&CHAR(ROW(A66))&":"&CHAR(ROW(A66)))),1)),PHONETIC(OFFSET(INDIRECT(ADDRESS(1,ROW(),,,"sheet1")),COUNTA(INDIRECT("sheet1!"&CHAR(ROW(A66))&":"&CHAR(ROW(A66))))-15,ROW()-1,15,1)),"")))/15-1
把这个公式向下拖动,直到行数与数据表的列数相等

第2个回答  2012-03-13
假设你源数据是在sheet1表里
那么因为你说行数是不固定的,所以为了动态判断你的实际行数,建议你在sheet2表处理显示结果。
比如你的数据是在sheet1表A列开始的,那么sheet2表的A1输入
=(LEN(PHONETIC(OFFSET(Sheet1!$A$1,,MAX(COLUMN(A1)-1),COUNTA(Sheet1!A:A),)))-LEN(SUBSTITUTE(PHONETIC(OFFSET(Sheet1!$A$1,,MAX(COLUMN(A1)-1),COUNTA(Sheet1!A:A),)),PHONETIC(OFFSET(Sheet1!$A$1,COUNTA(Sheet1!A:A)-15,COLUMN(A1)-1,15,)),""))-15)/15
右拉公式填充,是多少列填充多少列。
公式显示的结果就是此列里有几处与最后15行重复的。追问

很好,统计结果有效。可以判断有无重复数据。只是不知道在哪行,能否继续完善?另外,如果我想找最后14行,又怎么改那公式呢?谢谢赐教!!

追答

刚才说的是A1有公式,按你的追问,那么A2输入
=IF(A1>0,FIND("@",SUBSTITUTE(PHONETIC(OFFSET(Sheet1!$A$1,,MAX(COLUMN(A1)-1),COUNTA(Sheet1!A:A),)),PHONETIC(OFFSET(Sheet1!$A$1,COUNTA(Sheet1!A:A)-3,COLUMN(A1)-1,3,)),"@")),"")
右拉填充,此行显示的内容即为有重复的第一个单元格。
如果有多个,那么,你需要的是vba,而不是函数。即此函数公式得出的是最早重复的内容开始在第几行,而不是所有重复的。

本回答被提问者采纳
第3个回答  2012-03-13
A和B是两个重复出现的数字吗?还是文本?追问

是文本

追答

能解决,不过有点复杂,让我再想想
你还要增加数据?那你永远是与最后15行对比吗?

追问

对的,就是比对最后的15行,太谢谢您了。做好了,我重金谢您。实话告诉您吧,我做的是动态彩票数据统计。462列,我每张表格只列50列,分了多个表格进行统计。

相似回答