组合多列变量的Excel

组合多列变量的Excel,excel,Excel,我有四列独立的数据(数字数据如“1、2、3”和数字/字母数据如“3A、3B”)。每列大约有100000行 我试图从每列中选择某些行并将它们组合起来。例如,在AJ列中,我想选择“1,2”,在AG列中,我想选择“3A,3B”,以此类推。然后,我希望所选行全部显示在一个较大的列中 有人能告诉我怎么做吗 以下是一些专栏的屏幕截图: 如果单元格A1为“1,2”,而B1为“3A,3B”,则在C1中可以使用以下公式: =CONCATENATE(A1,B1) =IFERROR(SMALL(IF((($AG$2

我有四列独立的数据(数字数据如“1、2、3”和数字/字母数据如“3A、3B”)。每列大约有100000行

我试图从每列中选择某些行并将它们组合起来。例如,在AJ列中,我想选择“1,2”,在AG列中,我想选择“3A,3B”,以此类推。然后,我希望所选行全部显示在一个较大的列中

有人能告诉我怎么做吗

以下是一些专栏的屏幕截图:

如果单元格A1为“1,2”,而B1为“3A,3B”,则在C1中可以使用以下公式:

=CONCATENATE(A1,B1)
=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)),"")
这将产生“123A,3b “在C1中。要修复间隙,请将其更改为:

=CONCATENATE(A1,", ",B1)

将单元格C1表示为:“1,2,3a,3b”。显然,您可以根据表结构添加更多值、使用范围或使用动态值或列名。

此数组公式将为您提供一列或其他列中为真的行:

=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的数字来使用索引

编辑

根据你的意见,我修正了你的公式。有些奇怪的角色excel不喜欢。我不得不重新输入整个公式:

=CONCATENATE(A1,B1)
=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)),"")

你能提供你的数据的屏幕截图和另一个你想要的结果吗?数据的模型将帮助我们更好地可视化你想要的东西。我添加了一个屏幕截图好的,现在你希望输出是什么?所以,我需要制作一个列,从AG提取1和2,从AJ提取3A和3B,并将它们放在一个单独的列中(但仍保留其他行)我的问题是,每列都有其他值。因此,列AJ有单独的单元格,其中包含0、1、2、3、4或5。我只想从列AJ中选择1或2。列AG包含1A、1B、3A、3B。我只想从列AG中选择3A和3B。然后我想将它们合并到一个新列中(因此,将AJ列中的1和2与AG列中的3A和3B合并到一个新列中)。因此,我添加到命令中,我的命令如下所示。我在哪里复制/粘贴它以计算实际数据?=IFERROR(小)(如果((($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$CK$29663=5)+($DN$2:$DN$DN$29663=1)+($DN$2:$DN$2:$DN=2:$DN=2,DN=2:$29663=2,DN=1),第二行($2:$29663:$1行)($2:$2:$2,第(第二行)($1行)($1行)($2:$2:$2:$2:$2:$2:$在单元格中的空列中,按ctrl-shift-enter键,然后向下复制,直到得到空白。因此,我将公式粘贴到一个空单元格中,并按ctrl+shift+enter键。该单元格中没有显示任何内容。然后向下拖动右下角,仍然没有结果。我的公式是否不正确?@KangaRew请参见编辑。因此,我现在正在复制/p当我点击ctrl+shift+enter时,会显示一条错误消息,表示数组不允许合并单元格。