2014-09-22 38 views
1
A    B C  D  E F G H 
ACC'L SCIENCE 0.5 TRUE 557092 87 87  
ACC'L SCIENCE 0.5 TRUE 557092   88 88 
ART    0.5 TRUE 557092 98 98  
ENGLISH 6  0.5 TRUE 557092 88 88  
ENGLISH 6  0.5 TRUE 557092   87 87 
GIRLS PE  0.5 TRUE 557092 100 100  
GIRLS PE  0.5 TRUE 557092   94 94 

我在excel文件中有上述7行。我试图检查连续的列是否有相同的值,它们应该合并成一行。我试图公式将创建下列数据在Excel中合并行

A    B C  D  E F G H 
ACC'L SCIENCE 0.5 TRUE 557092 87 87 88 88 
ART    0.5 TRUE 557092 98 98  
ENGLISH 6  0.5 TRUE 557092 88 88 87 87 
GIRLS PE  0.5 TRUE 557092 100 100 94 94 

伪代码看起来是这样的:

=IF(A1 = A2),--> G1,H1 = G2, H2 

我不得不那么也占线跳过 - 喜欢美术课。如果使用这样的'IF'语句来检查约束是否是一种有效的方法?

IF的问题似乎是,当我真的想要它合并时它返回布尔值。有没有一种时尚的非VBA方式来做到这一点?我发现了一些具有类似数据的良好VBA选项 - 但似乎有一种方法不必将其分解出来。我知道MATCH和INDEX,但还没有想出一种方法来合并它们。

我试过一个数组MATCH - INDEX公式,但它返回奇数值 - 我插入一个新列以免混淆数据 - 试图基本上将数字合并成一行。

MATCH($A$2:$A$7, INDEX(E2 & F2, $G$2:$G$7 & $H$2:$H$7)) 

我很新的excel,虽然我已经做了一些python。任何指针在正确的方向,我将不胜感激。

+0

从我所知道的情况来看,删除重复项会删除该行,但我需要将数据保留在行的末尾并基本合并它。如果我在列A上删除重复项,是不是会完全删除第2,5和7行中的所有数据? – Joe 2014-09-22 19:00:51

+0

你写道:“我有一个excel文件中的上述7列,我试图检查连续的列是否有相同的值,它们应该合并成一行。”我认为你的意思是“我有一个excel文件中的上述7 **行**,我试图检查连续的**行**是否具有相同的值,它们应该合并成一行。” – 2014-09-22 19:06:55

+0

哪些列应该检查相同的值?只有列A或列A,B,C和D? – 2014-09-22 19:08:38

回答

1

我觉得有可能是更容易的方法来做到这一点比这个,但我的第一个想法是两步过程:

在细胞I1,比方说,把下面的公式:

=IFERROR(INDEX(A$1:A$7,MATCH(1,(--($A$1:$A$7=$A1))*(--(A$1:A$7<>"")),0)),"") 

CTRL + 移位输入它作为一个阵列式 + 输入

然后,您可以根据需要将其向下拖动。

(这个公式基本上是说,只要在A列中的值相等,在第一个非空行的值拉与它一起。)

现在,您可以复制,粘贴>值然后使用Data>Remove Duplicates删除重复的行。

就像我说的,t可能不是最优雅的解决方案,但它应该做的伎俩!

希望帮助!

UPDATE:


由于需要两列A和d匹配的评论,试试这个公式:

=IFERROR(INDEX(A$1:A$7,MATCH(1,(--($A$1:$A$7=$A1))*(--($D$1:$D$7=$D1))*(--(A$1:A$7<>"")),0)),"") 
+1

中解释得更好 - 我应该更好地解释 - 但我不仅需要检查对A列也是D列 - 我试着重新排列这个公式无效 - 它很接近,但是它覆盖了第2-7行,第1行的内容是 – Joe 2014-09-22 20:24:26

+0

@Joe,所以列A和D比赛? ...我现在更新公式... – 2014-09-22 20:39:56

+0

感谢您的帮助 - 虽然它们不匹配。列A是班级名称,列D是学生人数 - 完全不同的领域 - 只是一个额外的检查,以确保不仅班级相同,而且学生也是一样。 – Joe 2014-09-22 21:13:37

1

如果d,然后A,小计分类用小小的摆弄可能适合。对于A中的每个更改,在E,F,G和H上使用和。筛选并选择A包含... Total。用B中的=Bx填充第一个可见的非标题行,其中x比当前行号小1。复制到D和下来以适应。 Unfilter,选择全部复制,在顶部粘贴特殊值。选择A不包含... Total并删除除标题外的所有可见内容。将ColumnA中的Total替换为无。

+1

非常酷的主意! +1 – 2014-09-22 20:43:38