【问题标题】:creating abbreviations for a text with more than 2 spaces using excel formula使用excel公式为超过2个空格的文本创建缩写
【发布时间】:2019-12-30 05:23:46
【问题描述】:

我正在尝试编写一个公式来创建一个在 excel 单元格中包含两个以上空格的文本的缩写,该公式使用一个公式,该公式将在空格之后修剪每个字符串的第一个单词并将其作为字符串像示例一样下面给出。

示例:全球远程访问管理系统 - GRAMS

公式:

=IF(OR(LEN(K7)>10,((LEN(K7)-LEN(SUBSTITUTE(K7," ","")))>2),CONCATENATE((LEFT(K7),3) ,RIGHT(K7,3)),K2))

我不确定为什么它不起作用。我试图单独解决问题并且它有效,但作为一个公式,它失败了。

任何帮助将不胜感激。提前谢谢你。

【问题讨论】:

    标签: excel excel-formula ms-office formula


    【解决方案1】:

    如果您有 Excel 365 或 Excel 2019 或 Excel Web,则以下公式适用于您。

    =TEXTJOIN("",TRUE,MID(TRIM(MID(SUBSTITUTE(" "&A1," ",REPT(" ",99)),ROW($A$1:$A$10)*99,99)),1,1))

    注意事项:

    1. 以上公式适用于 10 个单词。如果还有更多,请更改 ROW($A$1:$A$10) 部分以适应。它假定您的数据位于单元格 A1 中。
    2. 这是一个数组公式,因此需要同时通过 CTRL+SHIFT+ENTER 提交。如果操作正确,Excel 将自动用 {} 大括号将其包裹起来。

    【讨论】:

      【解决方案2】:

      在具有CONCAT 函数的更高版本的 Excel 中,您可以使用:

      =CONCAT(LEFT(FILTERXML("<t><s>"&SUBSTITUTE(A1," ","</s><s>")&"</s></t>","//s")))
      

      如果您不想只使用一个空格来缩写短语,您可以使用 IF 进行测试。

      算法

      • 从字符串中创建一个 XML,其中节点是每个空格分隔的子字符串
      • 连接每个节点的第一个字母

      上述公式适用于任意数量的单词。

      如果您有早期版本的 Excel,没有上述公式所需的函数,您可以使用 VBA,也可以使用以下公式的变体:

      seq_99 是一个命名公式,指的是:

      =IF(ROW($A$1:INDEX($A:$A,255,1))=1,1,1*(ROW($A$1:INDEX($A:$A,255,1))-1)*99)
      

      然后,主要公式:

      =INDEX(LEFT(TRIM(MID(SUBSTITUTE(A1," ",REPT(" ",99)),seq_99,99))),1,1) &
           INDEX(LEFT(TRIM(MID(SUBSTITUTE(A1," ",REPT(" ",99)),seq_99,99))),2,1) &
             INDEX(LEFT(TRIM(MID(SUBSTITUTE(A1," ",REPT(" ",99)),seq_99,99))),3,1) &
              INDEX(LEFT(TRIM(MID(SUBSTITUTE(A1," ",REPT(" ",99)),seq_99,99))),4,1) &
                INDEX(LEFT(TRIM(MID(SUBSTITUTE(A1," ",REPT(" ",99)),seq_99,99))),5,1) &
                  INDEX(LEFT(TRIM(MID(SUBSTITUTE(A1," ",REPT(" ",99)),seq_99,99))),6,1) &
                    INDEX(LEFT(TRIM(MID(SUBSTITUTE(A1," ",REPT(" ",99)),seq_99,99))),7,1)
      

      请注意,每行代表一个字母,您需要的行数与字符串中可能存在的单词一样多。 (你可以有更多的行,因为那些不匹配的只会在字符串中添加一个空字符串,这没什么)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-03-10
        • 1970-01-01
        • 2018-05-26
        • 2013-07-29
        • 1970-01-01
        • 1970-01-01
        • 2021-08-29
        • 1970-01-01
        相关资源
        最近更新 更多