Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用excel公式为超过2个空格的文本创建缩写_Excel_Excel Formula_Ms Office_Formula - Fatal编程技术网

使用excel公式为超过2个空格的文本创建缩写

使用excel公式为超过2个空格的文本创建缩写,excel,excel-formula,ms-office,formula,Excel,Excel Formula,Ms Office,Formula,我正在尝试编写一个公式来创建excel单元格中包含两个以上空格的文本的缩写,该公式将在空格后修剪每个字符串的第一个单词,并将其作为字符串,如下面给出的示例所示 示例:全球远程访问管理系统-GRAMS 公式: =如果(或(LEN(K7)>10,((LEN(K7)-LEN(替换(K7,“,”))>2),连接((左(K7),3),右(K7,3)),K2)) 我不知道为什么它不起作用。我试着单独找麻烦,但作为一个公式,它失败了 任何帮助都将不胜感激。提前谢谢。如果您有Excel 365或Excel 20

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

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

公式:

=如果(或(LEN(K7)>10,((LEN(K7)-LEN(替换(K7,“,”))>2),连接((左(K7),3),右(K7,3)),K2))

我不知道为什么它不起作用。我试着单独找麻烦,但作为一个公式,它失败了


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

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

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

注:

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

  • 在具有
    CONCAT
    功能的更高版本的Excel中,您可以使用:

    =CONCAT(LEFT(FILTERXML("<t><s>"&SUBSTITUTE(A1," ","</s><s>")&"</s></t>","//s")))
    
    然后,主要公式是:

    =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)
    
    请注意,每行代表一个字母,您将需要尽可能多的行,因为字符串中可能有单词。(您可以有更多的行,因为不匹配的行只会向字符串中添加一个空字符串,这是零)

    =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)