我有一个如下所示的电子表格:
ABCDE ...
1| 1 0 0 1 0
2| 0 1 0 0 1
3| 0 0 0 1 0
4| 1 0 0 0 0
我想连接 F 列中的第 1 行,以便返回:10010
但是输入=concatenate(A1:E1)
会返回错误#VALUE!
,而使用数组公式({=concatenate(A1:E1)}
)只会返回 1。
此方法让我接近了,但是它删除了公式,所以我无法拖下并连接所有行。
为什么 Excel 的连接如此困难?有没有其他不使用 VBA 的方法来实现这一点?
答案1
在F1进入:
=A1 & B1 & C1 & D1 & E1
并抄下来。
编辑#1:
如果你想咬紧牙关,使用VBA,然后考虑这个微小的自定义函数
Public Function KonKatenate(rIN As Range) As String
Dim r As Range
For Each r In rIN
KonKatenate = KonKatenate & r.Text
Next r
End Function
用户定义函数 (UDF) 非常容易安装和使用:
- ALT-F11 打开 VBE 窗口
- ALT-I ALT-M 打开新模块
- 粘贴内容并关闭 VBE 窗口
如果您保存工作簿,UDF 将随之保存。如果您使用的是 2003 以后的 Excel 版本,则必须将文件另存为.xlsm而不是.xlsx
要删除 UDF:
- 调出如上所示的 VBE 窗口
- 清除代码
- 关闭 VBE 窗口
要从 Excel 使用 UDF:
=KonKatenate(A1:Z1)
要了解有关宏的更多信息,请参阅:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
和
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
有关 UDF 的详细信息,请参阅:
http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx
必须启用宏才能使其工作!
答案2
Excel 中的功能CONCATENATE
非常有限。据我所知,要获得可填充的连接公式,唯一的选择就是忍痛将每个术语的地址作为单独的参数输入。
=CONCATENATE(A1,B1,C1,D1,E1)
抱歉,这是我在没有 VBA 的情况下能提供的最好的解决方案。希望您没有太多的列。