我单元格中有一个 8 个字符的字符串。例如 ABCDEFGH,我可以使用单元格的自定义数字格式将其显示为 AB-CD-EF-GH 吗?
目前我的方法是让另一个单元格引用它并使用如下公式
=LEFT(A1,2)&"-"&MID(A1,3,2)&"-"&MID(A1,5,2)&"-"&RIGHT(A1,2)
。
答案1
正如评论中指出的那样,没有可用的自定义数字格式代码来执行您想要的操作。您唯一的选择就是您正在做的事情。
有关自定义数字格式代码及其工作原理的详细信息,您可以访问此 Microsoft 网页。
答案2
答案3
由于 Excel 不提供任何自定义格式,因此我建议您使用 VBA(宏)代码,这是将所需字符以固定间隔放置在单元格值之间的最快方法。
Sub InsertCharacter()
Dim Rng As Range
Dim InputRng As Range, OutRng As Range
Dim xRow As Integer
Dim xChar As String
Dim index As Integer
Dim arr As Variant
Dim xValue As String
Dim outValue As String
Dim xNum As Integer
xTitleId = "Put Dashes"
Set InputRng = Application.Selection
Set InputRng = Application.InputBox("Range :", xTitleId, InputRng.Address, Type:=8)
xRow = Application.InputBox("Number of characters :", xTitleId, Type:=1)
xChar = Application.InputBox("Specify a character :", xTitleId, Type:=2)
Set OutRng = Application.InputBox("Out put to (single cell):", xTitleId, Type:=8)
Set OutRng = OutRng.Range("A1")
xNum = 1
For Each Rng In InputRng
xValue = Rng.Value
outValue = ""
For index = 1 To VBA.Len(xValue)
If index Mod xRow = 0 And index <> VBA.Len(xValue) Then
outValue = outValue + VBA.Mid(xValue, index, 1) + xChar
Else
outValue = outValue + VBA.Mid(xValue, index, 1)
End If
Next
OutRng.Cells(xNum, 1).Value = outValue
xNum = xNum + 1
Next
End Sub
怎么运行的:
- 将此代码复制并粘贴为带有 Sheet 的标准模块。
只要你运行宏,它就会弹出4 输入框一个接一个。
第一个输入框将要求输入源数据范围。
第二步将查找字符数(您需要多少个字符之后 - 符号,在您的情况下是 2)。
第三个将要求插入字符(在您的情况下是 - 符号)。
最后一个将询问输出单元的位置(必须是单个单元)。
单击“确定”完成。
注意:
此宏功能多样,您可以使用任何字符放在其间,也可以重新设计字符之间的间隔,并且它可以适用于任何类型的数据,包括字母数字、数字或字母。最好的部分是它适用于几乎所有版本的 Excel(2007、2010、2013 和 2016)