gpt4 book ai didi

excel - CONCATENATE(IF()) - 如何简化当前的解决方案?

转载 作者:行者123 更新时间:2023-12-04 21:16:21 26 4
gpt4 key购买 nike

我的数据如下所示:

     ColumnName    PrimaryKey
1 ID Y
2 JOB_NAME N
3 JOB_DESC N
4 START N
5 END N
...

我希望列出所有作为主键的列 - 因此,PrimaryKey =“Y”的所有列 - 在一个单元格中,每个返回的 ColumnName 行之间都有“+”符号。这是我到目前为止的代码:
=CONCATENATE((IF(C1="Y",B1,"")),(IF(C2="Y",B2,"")),(IF(C3="Y",B3,"")),(IF(C4="Y",B4,"")),(IF(C5="Y",B5,"")))

它完成了工作,但由于我在 ColumnName 列中有超过 50 行,它应该更简洁一些。

最佳答案

这是一个有趣的非 VBA 方法:) 你可能仍然想使用其他 VBA 答案。

假设您的范围看起来像这样

enter image description here

我可以想到两种方法。 您可能更喜欢方式 2 :)。我会提到两者

方式 1

现在在单元格 C1 中输入或您希望输出的任何单元格( 不要按 ENTER 键 )。

=CONCATENATE(TRANSPOSE(IF(B1:B5="Y",A1:A5,"+")))

enter image description here

现在选择如下图所示的公式,然后按 F9

enter image description here

你会得到这样的东西。您可以删除连续的 "+","+"在这里,或者您可以稍后将它们删除。

enter image description here

删除 {}从公式中,然后按 Enter。你会得到这个

enter image description here

将单元格公式转换为值并在 ++ 上进行替换直到时间不再 ++离开了。

方式 2

在单元格 C1 中键入此公式
=IF(B1="Y",A1,"")

并在 C2 中输入此公式
=IF(AND(C1<>"",B2<>"N"),C1&"+"&IF(B2="Y",A2,""),IF(B2="Y",A2,C1))

只需将其拖下即可。

enter image description here

关于excel - CONCATENATE(IF()) - 如何简化当前的解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31730174/

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