输入数字和字母的公式,以“-”分隔

时间:2019-07-26 16:03:25

标签: excel excel-formula

我有一个Excel文档,可以控制我企业中Office的许可证。我想编辑单元格以自动添加“-”,以及它在产品密钥中的显示方式。请记住,这些键是按照示例XXXXX-XXXXX-XXXXX-XXXXX-XXXXX进行的,每组五个字符中都有数字和字母。用这种方式格式化单元格的代码是什么?

3 个答案:

答案 0 :(得分:0)

如果您具有OFFICE 365 Excel,则可以使用TEXTJOIN的数组版本:

=TEXTJOIN("-",,MID(A1,(ROW(1:5)-1)*5+1,5))

作为数组公式,退出编辑模式时必须使用Ctrl-Shift-Enter而不是Enter进行确认。

如果不这样做,那么将简单解析值和串联:

=LEFT(A1,5) & "-" & MID(A1,6,5) & "-" & MID(A1,11,5) & "-" & MID(A1,16,5 )& "-" & MID(A1,21,5)

答案 1 :(得分:0)

您可以使用:

 =CONCATENATE(MID(A1,1,5),"-",MID(A1,6,5),"-",MID(A1,11,5),"-",MID(A1,16,5),"-",MID(A1,21,5))

这是适用于任何Excel版本的标准公式。

答案 2 :(得分:0)

您将无法在单元格中输入产品密钥,并且要使该单元格使用单元格格式添加破折号。如果使用公式,则该公式必须位于单独的单元格中。如果要输入单元格来自动更新,可以使用VBA进行。

Private Sub Worksheet_Change(ByVal Target As Range)

    Dim strOrig As String, strNew As String

    If Target.Column = 1 Then
        If Len(Target.Value) = 25 Then
            strOrig = Target.Value
            strNew = Left(strOrig, 5) & "-" & Mid(strOrig, 6, 5) & "-" & Mid(strOrig, 11, 5) & "-" & Mid(strOrig, 16, 5) & "-" & Right(strOrig, 5)
            Target.Value = strNew
        End If
    End If

End Sub

将此代码放在数据所在的工作表中。此代码假定产品密钥在A列中。如果它们在不同的列中,请将Target.column = 1更改为适当的列号。