Excel 以特定的方式反转文本

Excel 以特定的方式反转文本,excel,excel-formula,Excel,Excel Formula,我正在尝试反转一个魔方算法,你不需要知道任何关于魔方的知识,别担心。例如,R U R‘U’ 反转的规则是用相反的方式写:U'R'U R 然后应用“素数”操作符。现在是:U R U'R' 所以每一封有“现在”的信都没有,那些现在没有的信也没有 另一个例子:R'F R F'->F'R F R'->F R'F'R 我曾经尝试过使用TEXTJOIN来反转文本,这有点奇怪,但它确实起到了作用,但是应用素数操作符是另一回事 编辑:此外,对于带有括号的算法,如:R U R'U'R'F R F,必要时可以忽略括

我正在尝试反转一个魔方算法,你不需要知道任何关于魔方的知识,别担心。例如,R U R‘U’

反转的规则是用相反的方式写:U'R'U R 然后应用“素数”操作符。现在是:U R U'R'

所以每一封有“现在”的信都没有,那些现在没有的信也没有

另一个例子:R'F R F'->F'R F R'->F R'F'R

我曾经尝试过使用TEXTJOIN来反转文本,这有点奇怪,但它确实起到了作用,但是应用素数操作符是另一回事


编辑:此外,对于带有括号的算法,如:R U R'U'R'F R F,必要时可以忽略括号。

使用此数组版本的TEXTJOIN:

=TEXTJOIN(" ",TRUE,IF(RIGHT(TRIM(MID(SUBSTITUTE(A1," ",REPT(" ",99)),((LEN(A1)-LEN(SUBSTITUTE(A1," ",""))+1)-ROW($XFD$1:INDEX($XFD:$XFD,LEN(A1)-LEN(SUBSTITUTE(A1," ",""))+1)))*99+1,99)))="'",LEFT(TRIM(MID(SUBSTITUTE(A1," ",REPT(" ",99)),((LEN(A1)-LEN(SUBSTITUTE(A1," ",""))+1)-ROW($XFD$1:INDEX($XFD:$XFD,LEN(A1)-LEN(SUBSTITUTE(A1," ",""))+1)))*99+1,99))),TRIM(MID(SUBSTITUTE(A1," ",REPT(" ",99)),((LEN(A1)-LEN(SUBSTITUTE(A1," ",""))+1)-ROW($XFD$1:INDEX($XFD:$XFD,LEN(A1)-LEN(SUBSTITUTE(A1," ",""))+1)))*99+1,99))&"'"))
作为数组公式,必须在退出编辑模式时使用Ctrl-Shift-Enter而不是Enter确认


使用此阵列版本的TEXTJOIN:

=TEXTJOIN(" ",TRUE,IF(RIGHT(TRIM(MID(SUBSTITUTE(A1," ",REPT(" ",99)),((LEN(A1)-LEN(SUBSTITUTE(A1," ",""))+1)-ROW($XFD$1:INDEX($XFD:$XFD,LEN(A1)-LEN(SUBSTITUTE(A1," ",""))+1)))*99+1,99)))="'",LEFT(TRIM(MID(SUBSTITUTE(A1," ",REPT(" ",99)),((LEN(A1)-LEN(SUBSTITUTE(A1," ",""))+1)-ROW($XFD$1:INDEX($XFD:$XFD,LEN(A1)-LEN(SUBSTITUTE(A1," ",""))+1)))*99+1,99))),TRIM(MID(SUBSTITUTE(A1," ",REPT(" ",99)),((LEN(A1)-LEN(SUBSTITUTE(A1," ",""))+1)-ROW($XFD$1:INDEX($XFD:$XFD,LEN(A1)-LEN(SUBSTITUTE(A1," ",""))+1)))*99+1,99))&"'"))
作为数组公式,必须在退出编辑模式时使用Ctrl-Shift-Enter而不是Enter确认


这里有一个替代解决方案,也使用TEXTJOIN。这假设字符串中有4个元素-您可以根据需要调整内联数组常量,请参见{3,2,1,0}

结果:


这里有一个替代解决方案,也使用TEXTJOIN。这假设字符串中有4个元素-您可以根据需要调整内联数组常量,请参见{3,2,1,0}

结果:


发布后,可以对LEN-LEN使用SORT和SEQUENCE,无论长度如何,我都必须对其进行调整:=substitutextjoin,TRUE,TRIMMIDSUBSTITUTEA1,REPT,99,1+99*SORTSEQUENCELENA1-LENSUBSTITUTEA1,+1,,-1-1,99&',@ScottCraner显然该函数无效。错误指向排序位。@Simplex1 true,我的排序位也失败。我发布的公式怎么样?它对你有用吗?正如Scott提到的,排序和排序函数只对办公室内部人员可用。一旦Scott的功能发布给所有Office 365订户,我很想测试它。下面是Scott公式,适用于那些尚未访问新函数的用户:=substituteExtJoin,TRUE,TRIMMIDSUBSTITUTEA1,REPT,99,1+99*sort,99&',数组公式,其中:sort==TRANSPOSELARGEsequence,sequence-1和sequence==ROWINDEXSheet9$A:$A,1,1:INDEXSheet9$A:$A,9号$A1-Len替代品SHEET9$A1,+1,1喜欢在字符串中添加“然后替换为空白!”!您可以将公式中的{3,2,1,0}替换为更大的$A$1:INDEX$A:$A,LENSUBSTITUTEA1',/2+1,行$A$1:INDEX$A:$A,LENSUBSTITUTEA1',/2+1-1,这将使公式更加通用,该公式将成为一个数组公式。发布后,可以对LEN-LEN使用SORT和SEQUENCE,无论长度如何,我都必须对其进行调整:=substitutextjoin,TRUE,TRIMMIDSUBSTITUTEA1,REPT,99,1+99*sortsequenceelena1-LENSUBSTITUTEA1,+1,,-1-1,99&',@ScottCraner显然该函数无效。错误指向排序位。@Simplex1 true,我的排序位也失败。我发布的公式怎么样?它对你有用吗?正如Scott提到的,排序和排序函数只对办公室内部人员可用。一旦Scott的功能发布给所有Office 365订户,我很想测试它。下面是Scott公式,适用于那些尚未访问新函数的用户:=substituteExtJoin,TRUE,TRIMMIDSUBSTITUTEA1,REPT,99,1+99*sort,99&',数组公式,其中:sort==TRANSPOSELARGEsequence,sequence-1和sequence==ROWINDEXSheet9$A:$A,1,1:INDEXSheet9$A:$A,9号$A1-Len替代品SHEET9$A1,+1,1喜欢在字符串中添加“然后替换为空白!”!您可以将公式中的{3,2,1,0}替换为更大的$A$1:INDEX$A:$A,LENSUBSTITUTEA1',/2+1,行$A$1:INDEX$A:$A,LENSUBSTITUTEA1',/2+1-1,这将使公式更加通用,并且该公式将成为一个数组公式。您是否能够共享更多具有可能的变化和预期结果的样本数据?您是否能够共享更多具有可能的变化和预期结果的样本数据?