Excel 从混合字符串中提取日期和数字时,无法从结果中删除零。

Excel 从混合字符串中提取日期和数字时,无法从结果中删除零。,excel,excel-formula,vba,Excel,Excel Formula,Vba,我从包含混合字符串的列中提取数字和日期,如下面的示例表所示 Subscriber Name 123456789123 null null null null null null 5/23/2016 hello Good Evening null 6/11/2016 我正在使用CSE输入的数组公式: {=IFERROR(--SUMPRODUCT(MID(0&Q2,LARGE(INDEX(ISNUMBER(--MID(Q2,ROW($1:$25),1))*

我从包含混合字符串的列中提取数字和日期,如下面的示例表所示

Subscriber Name  
123456789123 null null  
null  
null null null  
5/23/2016  
hello   
Good Evening  
null 6/11/2016  
我正在使用CSE输入的数组公式:

{=IFERROR(--SUMPRODUCT(MID(0&Q2,LARGE(INDEX(ISNUMBER(--MID(Q2,ROW($1:$25),1))* ROW($1:$25),0),ROW($1:$25))+1,1)*10^ROW($1:$25)/10),"")}
我得到以下结果,其中0显示在带有空单元格或文本单元格的单元格中,而我要求它为空。我也尝试过插入IFERROR和“-”,但在单元格中仍然得到0。公式中需要进行哪些修正。此外,如果有人提供,我也愿意接受VBA解决方案


当找不到任何数字时,没有iferror的公式将计算为0,这就是为什么iferror没有捕捉到任何东西。当结果为零时,可以将结果反转两次以导致错误。你知道:

=1/BIG_HONKING_FORMULA 
会给你一个DIV/0!要为空的单元格出现错误。你也知道这会把你想要的行的结果搞砸!所以你可以做:

=1/(1/BIG_HONKING_FORMULA)

当您的公式为零时,它将生成一个错误,并且应该保留您想要保留的结果。

日期显然是一个字符串,因为它与字符串混合在一个单元格中。我的问题是这个月的格式总是一样的,没有前导零?一天中是否有一个前导零?用IF(BIG_HONKING_公式=0,“,BIG_HONKING_公式)来概括整个过程?您不应该在sumproduct前面使用--,因为sumproduct只能是一个数字。您也不需要在MID前面加上--,因为当找不到任何数字时,您通过数学计算将其乘以行()来发送。如果没有iferror,您的公式将计算为0,这就是为什么您的iferror没有捕获任何内容。当结果为零时,可以将结果反转两次以导致错误。你知道1/BIG\u HONKING\u公式会给你一个DIV/0!要为空的单元格出现错误。你也知道这会把你想要的行的结果搞砸!所以你可以做1/(1/BIG_HONKING_FORMULA),当你的公式为零时,它会产生一个错误,并且应该让你的结果保持不变,因为你想保持不变。最后,如果你使用的是sumproduct来生成类似数组的运算,但实际上没有使用和积的求和功能,请看一下聚合函数。它能够忽略错误,操作14和15将导致像sumproduct一样发生类似数组的操作。@当我们输入日期为2016年6月21日时,Excel将其转换为2016年6月21日,因此我没有使用前导零。第二,你建议的修正并没有给出期望的结果。请看