Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.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中的字符串中提取中间字符?_Excel_Excel Formula - Fatal编程技术网

使用公式从excel中的字符串中提取中间字符?

使用公式从excel中的字符串中提取中间字符?,excel,excel-formula,Excel,Excel Formula,我想从excel中的字符串中提取中间字符。是否有任何方法可以使用excel公式完成此任务?比如,如果我有长度为偶数的字符串,然后提取中间两个字符,或者如果其长度为奇数,则提取单个中间字符,如下图所示 以下工作: =IF(MOD(LEN(A2),2) = 0,MID(A2,INT(LEN(A2)/2),2),MID(A2,1+INT(LEN(A2)/2),1)) 这很有效,而且非常简单: =MID(A2,ROUNDPUP(LEN(A5)/2,0),IF(MOD(LEN(A2),2)=0,2,1)

我想从excel中的字符串中提取中间字符。是否有任何方法可以使用excel公式完成此任务?比如,如果我有长度为偶数的字符串,然后提取中间两个字符,或者如果其长度为奇数,则提取单个中间字符,如下图所示

以下工作:

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

这很有效,而且非常简单:

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

说明: 考虑到“abcde”字符串,它将是:

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

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

可能的最短公式:

=MID(A1,LEN(A1)/2+0.5,2-MOD(LEN(A1),2))
这将利用MID函数只获取其参数的整数部分