gpt4 book ai didi

vba - 将多列中的值合并为一列

转载 作者:行者123 更新时间:2023-12-02 14:38:16 25 4
gpt4 key购买 nike

我有以下数据结构:

Data+Expected Results+What I get

正如您在J 列中看到的那样,我正在尝试将A列和C列和E列中的数据合并到一列中> & G

我正在使用这个公式:

=IF(ROW()<=COUNTA($A:$A);INDEX($A:$C;ROW();COLUMN(A1));INDEX($A:$C;ROW()-COUNTA($A:$A)+1;COLUMN(C1)))

我得到了K列中的值,如您所见。目前该公式仅合并两列。 如何修改它以合并所有四列?


如何只获取从第 5 行开始的值?
列高会不断变化:有时 A 列中有 10 个值,有时有 2 个值。


任何 Excel 公式或任何 VBA 代码都可以接受。

最佳答案

有一个相当标准的方法可以从列中检索唯一值,但不能从多个列中检索唯一值。要实现从多列检索,您需要将多个公式堆叠在一起,并将处理传递到后续列(其中较早的公式出错)。

       Collect Unique from multiple columns

J5 中的数组公式1 为,

=IFERROR(INDEX($A$5:$A$99, MATCH(0, IF(LEN($A$5:$A$99), COUNTIF(J$4:J4, $A$5:$A$99), 1), 0)),
IFERROR(INDEX($C$5:$C$99, MATCH(0, IF(LEN($C$5:$C$99), COUNTIF(J$4:J4, $C$5:$C$99), 1), 0)),
IFERROR(INDEX($E$5:$E$99, MATCH(0, IF(LEN($E$5:$E$99), COUNTIF(J$4:J4, $E$5:$E$99), 1), 0)),
IFERROR(INDEX($G$5:$G$99, MATCH(0, IF(LEN($G$5:$G$99), COUNTIF(J$4:J4, $G$5:$G$99), 1), 0)),
""))))

我只包含 A、C、E 和 G 列,因为您的示例数据仅显示 B、D、F 和 H 列中的重复项。

<小时/>

1 数组公式需要使用 Ctrl+Shift+Enter↵ 来完成。如果输入正确,Excel 会将公式括在大括号中(例如 {})。您不必自己输入大括号。一旦正确输入第一个单元格,就可以像任何其他公式一样向下或向右填充或复制它们。尝试将整列引用减少到更接近地代表实际数据范围的范围。数组公式以对数方式消耗计算周期,因此最好将引用范围缩小到最小值。请参阅Guidelines and examples of array formulas了解更多信息。

关于vba - 将多列中的值合并为一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30329189/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com