gpt4 book ai didi

excel - 如果下面的列有 1,则连接顶行单元格

转载 作者:行者123 更新时间:2023-12-04 20:15:08 25 4
gpt4 key购买 nike

我正在查看带有命名列的 1 和 0 的大型数据库,如下所示:

red    blue   green  orange purple
────── ────── ────── ────── ──────
0 0 1 0 1
0 1 0 0 0

我想连接所有标题(按行),其中行在该标题下方有一个“1”。所以理想情况下,第一个等于“绿色,紫色”,第二个读作“蓝色”。我有大量数据,所以任何嵌套一百个“IF”函数的东西都没有意义。

我试过了

=IF(B1:B5=1, CONCATENATE(A1:A5), "")



还有几件事与之接近,但我没有找到一种明显的方法来获得它。我也没有时间或足够的知识来处理 VBA。感谢所有帮助,谢谢!

最佳答案

即使没有设置标准,最好将多个单元格上的字符串连接留给 VBA 用户定义函数(又名 UDF)。您“嵌套一百个“IF”函数”的情况肯定会将其归为这一类。

点击 Alt+F11,当 VBE 打开时,立即使用下拉菜单插入 ► 模块 (Alt+I,M)。将以下内容粘贴到标题为 Book1 - Module1 (Code) 的新 Pane 中。

Public Function conditional_concat(rSTRs As Range, rCRITs As Range, Optional sDELIM As String = ", ")
Dim c As Long, sTMP As String
For c = 1 To Application.Min(rSTRs.Cells.Count, rCRITs.Cells.Count)
If CBool(rCRITs(c).Value2) Then _
sTMP = sTMP & rSTRs(c).Value & sDELIM
Next c
conditional_concat = Left(sTMP, Application.Max(Len(sTMP) - Len(sDELIM), 0))
End Function

点击 Alt+Q 返回您的工作表。像使用任何 native Excel 工作表函数一样使用此 UDF。语法是,
conditional_concat(<range of strings>, <range of conditions>, [optional] <delimiter as string>)

Conditional String Concatenation

G2中的公式是,
=conditional_concat(A$1:E$1, A2:E2)

根据需要填写。

关于excel - 如果下面的列有 1,则连接顶行单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28679758/

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