热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如果不是空的话,如何连接多个列

如何解决《如果不是空的话,如何连接多个列》经验,为你挑选了1个好方法。

我想用9来将9列的值连接成1列 价值之间.问题是有些列对于某些行是空的,因此使用= CONCATENATE()函数非常难看,因为你需要检查= if(A2 =""; ...)每个9列.

有没有更聪明的方法在excel中组合这些多列,只使用其中包含值的单元格?也许使用VBA?

为了举例说明,该表看起来像:

| A    | B    | C | D     | E       | F | G   | H   | I   |
|------+------+---+-------+---------+---+-----+-----+-----|
| lion | king |   |       | animals |   |     |     | dog |
| lion |      |   | queen |         |   | cat | jet |     |

1.行的输出应该是:"狮子|王|动物|狗"和2.行:"狮子|女王|猫|喷射"

有人可以帮忙吗?

非常感谢!



1> Sam..:

你可以使用一个简单的UDF:

Function MyConcat(ConcatArea As Range) As String
  For Each x In ConcatArea: xx = IIf(x = "", xx & "", xx & x & "|"): Next
  MyCOncat= Left(xx, Len(xx) - 1)
End Function

将上面的代码复制到标准代码模块中,并在工作表中使用,如下所示:

=MyConcat(A1:J1)

在没有使用凌乱的SUBSTITUTE/IF函数的情况下,实际上并没有使用工作表公式.


编辑(OP请求)

要删除重复项:

Function MyConcat(ConcatArea As Range) As String
  For Each x In ConcatArea: xx = IIf(x = "" Or InStr(1, xx, x & "|") > 0, xx & "", xx & x & "|"): Next
  MyCOncat= Left(xx, Len(xx) - 1)
End Function


推荐阅读
author-avatar
白云飞羽_389
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有