我正在尝试创建一个将通过电子表格的宏,并根据2行的名字和姓氏相同,将种族列的内容添加到第一行。
例如
FirstN|LastN |Ethnicity |ID |
Sally |Smith |Caucasian |55555 |
Sally |Smith |Native American | |
Sally |Smith |Black/African American | |
(宏运行后)
Sally |Smith |Caucasian/Native American/Black/African American|55555 |
有关如何执行此操作的任何建议?我为VBA阅读了几种不同的方法,但是对于创建这个宏的工作方式感到困惑。
EDIT 可能需要组合多于2行,并且需要删除或删除较低的行。
答案 0 :(得分:2)
如果您可以使用公式,那么您可以这样做:
我正在做的几个假设:
A2
中(第1行中有标题)。现在,对于步骤:
=if(and(A2=A3,B2=B3),C2&"/"&C3,"")
可以看出名称单元格A2和A3是否相等(名称是否相同),以及单元格B2和B3是否相等(姓氏是否相同)。
如果两者都是真的,那就是同一个人,所以我们连接(使用&
是除了使用concatenate()
这两个种族之外连接的另一种方式。
否则,如果名称或用户名或两者不同,请将其留空。
要完全删除冗余行,请在D列上复制/粘贴值,过滤D列中的空白单元格并删除。之后排序。
编辑:根据问题编辑:
新步骤:
=IF(AND(A1=A2,B1=B2),E1&"/"&C2,C2)
(我更改公式以适应新方法)=if(and(A1=A2,B1=B2),F1+1,1)
=if(F3<F2,1,0)
=if(and(D2="",A1=A2,B1=B2),H1,D2)
(无论身在何处都会获取ID)。将公式放在第2行。第3步的作用是为同名人员添加增量编号。
第4步的作用是检查列F何时返回1.这将识别您要保留的“最后一行”。
这是我从这些公式输出的:
绿色行是你保留的(注意1
列G
允许你快速发现它们),A,B,C,E和H列是您保留在最终工作表中的列。完成公式之后和删除行之前,不要忘记复制/粘贴值!
答案 1 :(得分:1)
如果Sally
中的A1
位于=IF(AND(A1=A2,B1=B2),C1&"/"&C2,"")
,那么C
适当地复制可能适用。假设不一样的空白(&#34;&#34;)优先于重复{{1}}值。