我有四列独立的数据(数字数据,如“1,2,3”和数字/字母数据,如“3A,3B”)。每列大约有100,000行。
我正在尝试从每列中选择某些行并将它们组合在一起。例如,在列AJ中我想从列AG中选择“1,2”,我想选择“3A,3B”,依此类推。然后,我希望所选行全部显示在一个较大的列中。
有人可以指导我如何完成吗?
以下是一些列的屏幕截图:
答案 0 :(得分:0)
如果单元格A1是" 1,2"和B1是" 3A,3B"然后在C1中你可以使用公式:
=CONCATENATE(A1,B1)
这将创建" 1,23a,3b "在C1。要修复差距,请将其更改为:
=CONCATENATE(A1,", ",B1)
使细胞C1为:" 1,2,3a,3b和#34;。然后,您可以显然添加更多值,使用范围或使用动态值或列名称,具体取决于您的表结构。
答案 1 :(得分:0)
此数组公式将为您提供在一列或其他列中为true的行:
=IFERROR(SMALL(IF((($AG$2:$AG$19=1)+($AG$2:$AG$19=2)+($AJ$2:$AJ$19="3A"))>0,ROW($2:$19)),ROW(1:1)),"")
这是一个数组公式,需要在退出编辑模式时使用Ctrl-Shift-Enter而不是Enter确认。
要添加条件,只需在if语句部分添加另一个条件即可。例如,如果我想测试3B
,我会在+($AJ$2:$AJ$19="3B")
之后添加...+($AJ$2:$AJ$19="3A")
另外要放大参考文献,请务必放大所有内容。因此,所有19
s都将增加到最后一行数据。
现在,如果要在与这些行对应的另一列中获取值,请添加INDEX
。例如,如果您想要A列中的值,那么:
=IFERROR(INDEX($A$2:$A$19,SMALL(IF((($AG$2:$AG$19=1)+($AG$2:$AG$19=2)+($AJ$2:$AJ$19="3A"))>0,ROW($2:$19)),ROW(1:1))-1),"")
这将使用返回的值来获取相应的值。
最后的-1
是因为我们从第二行开始,我们需要一个基于1的数字才能使用INDEX。
修改强>
根据你的意见我修改了你的公式。有一些奇怪的角色,excel不喜欢。我不得不重新输入整个公式:
=IFERROR(SMALL(IF((($AG$2:$AG$29663=1)+($AG$2:$AG$29663=2)+($AJ$2:$AJ$29663="3B")+($AJ$2:$AJ$29663="3A")+($AJ$2:$AJ$29663=3)+($AK$2:$AK$29663=1)+($CK$2:$CK$29663=1)+($CK$2:$CK$29663=2)+($CK$2:$CK$29663=3)+($CK$2:$CK$29663=4)+($CK$2:$CK$29663=5)+($DN$2:$DN$29663=1)+($DN$2:$DN$29663=2)+($DN$2:$DN$29663=3)+($AK$2:$AK$29663=2))>0,ROW($2:$29663)),ROW(1:1)),"")
<强> EDIT2 强>
=IFERROR(SMALL(IF(((($AG$2:$AG$29663=1)+($AG$2:$AG$29663=2)+($AJ$2:$AJ$29663="3B")+($AJ$2:$AJ$29663="3A")+($AJ$2:$AJ$29663=3)+($AK$2:$AK$29663=1)+($AK$2:$AK$29663=2))*(($CK$2:$CK$29663=1)+($CK$2:$CK$29663=2)+($CK$2:$CK$29663=3)+($CK$2:$CK$29663=4)+($CK$2:$CK$29663=5)+($DN$2:$DN$29663=1)+($DN$2:$DN$29663=2)+($DN$2:$DN$29663=3)))>0,ROW($2:$29663)),ROW(1:1)),"")