【问题标题】:Formula to input number and letters separated by "-"输入以“-”分隔的数字和字母的公式
【发布时间】:2019-12-05 00:07:47
【问题描述】:

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

【问题讨论】:

    标签: excel excel-formula


    【解决方案1】:

    如果您有 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)
    

    【讨论】:

    • 请看一下我发布的“答案”,看看您是否可以帮助我,谢谢!!
    • @Ferreira 你不能用数字格式做到这一点。它需要是 vba 或公式。在 Excel 中没有可以执行此操作的格式。
    【解决方案2】:

    你可以使用:

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

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

    【讨论】:

    • 请看一下我发布的“答案”,看看您是否可以帮助我,谢谢!!请看一下我发布的“答案”并看看能不能帮帮我,谢谢!!
    【解决方案3】:

    您将无法在单元格中输入产品密钥,也无法使用单元格格式在同一单元格中添加破折号。如果您使用公式,则该公式必须位于单独的单元格中。如果你想让你输入key的单元格自动更新,你可以使用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 更改为相应的列号。

    【讨论】:

      猜你喜欢
      • 2016-03-12
      • 2016-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-17
      • 1970-01-01
      • 1970-01-01
      • 2017-07-12
      相关资源
      最近更新 更多