连接单元格并保持原始格式

时间:2019-01-19 16:12:02

标签: excel

我们正在从基于Excel的系统迁移到数据库驱动的系统,并且需要将大量数据上传到数据库中。我创建了一个工作簿,该工作簿将使用存储在我们的主工作簿中的数据并将其拆分为可以直接上载到数据库表中的工作表。该项目的大部分工作进展顺利,但存在一个问题。我需要串联两个单元格并保持原始格式。

具体来说,我需要将站点编号和设备ID的单元格串联起来

我从基本的东西开始:

= CONCATENATE(C2,“-”,D2)

那是我遇到的第一个问题。某些站点编号的前导零是源数据格式的一部分,我需要前导零。

这提示了我下一次尝试:

= CONCATENATE(TEXT(C2,“ 000000000”),“-”,D2)

这样既保留了前导零,又如预期的那样,将站点前导零添加到了不应包含前导零的站点#中。有一些旧版站点尚未转换为新站点#格式。

我的下一次努力也取得了预期的效果。我尝试检查单元格值的长度,以便仅将零添加到级联单元格中(如果它们仅出现在源单元格中)。如我所料,长度中不包括前导零。

有没有一种方法可以使用Excel函数来完成?如果没有,请提供一些指针(不要要求完整的代码,只需要面包屑。当别人编写代码时,我学的东西不多,而当我苦苦挣扎时,我学的不多)来创建自定义函数来连接单元格。 / p>

1 个答案:

答案 0 :(得分:3)

尝试使用此快速的用户定义功能。

在标准模块代码表中,

function concSiteDevice(s as range, d as range, _
                        optional delim as string = "-")

    concSiteDevice = join(array(s.text, d.text), delim)

end function

这将使用单元格中显示的值,而不是原始值。

在工作表上,

 =concSiteDevice(C2, D2)

使用可选的 delim 参数,您可以将连字符更改为任何其他字符。例如,要使用@符号,

 =concSiteDevice(C2, D2, "@")