从Excel中的string中提取中间字符使用公式?

我想在excel中从string中提取中间字符。是否有任何方法使用Excel公式来实现这个任务? 就像我有长度均匀的string,然后提取中间的两个字符,或者如果它的长度是奇数,然后提取单个中间字符,如下图所示。

在这里输入图像说明

这工作,它非常简单:

=MID(A2,ROUNDPUP(LEN(A5)/2,0),IF(MOD(LEN(A2),2)=0,2,1)) 

说明:

考虑到“ abcde ”string,它将是:

  • ROUNDPUP(LEN(A5)/2,0)是我们想要开始提取的位置(例如3)。
  • IF(MOD(LEN(A2),2)=0,2,1)是我们需要多less个字符。 MOD用于确定长度( LEN )是偶数还是奇数 ,并根据结果返回1或2。
  • MID(A2, 3, 1)用于从A2内容获取子string,在本例中,从第三个位置开始,只提取1个字符(因为它是奇数)。

如果是“ abcd ”,则会导致MID(A2, 2, 2) ,即从第二个字符(“b”)开始,取两个字符(“bc”)。

以下工作:

 =IF(MOD(LEN(A2),2) = 0,MID(A2,INT(LEN(A2)/2),2),MID(A2,1+INT(LEN(A2)/2),1)) 

最短的公式可能:

 =MID(A1,LEN(A1)/2+0.5,2-MOD(LEN(A1),2)) 

这利用了MID函数只取其参数的整数部分。