我有一个数据提取,导致字段被合并到A列中:
Sales Figures Report pg 121
Walmart Inc. 001230134 99 Associates Parkway 56.12 20.00 10.00 86.12 00 1
1400.25 262.40 14.50 1677.15 02 9
50.00 100.25 10.00 160.25 00 1
1400.25 262.40 14.50 1677.15 02 9
这种格式有超过50,000行,有些稍微不同,因为他们从供应商信息开始,然后在那些值之后(仍然在col.A中)。在上面的例子中,1677.15是之前三个数字的组合值,即应付的总金额。
最初我想基本上使用left()
,mid()
,right()
等内容来区分每个值。不过,此时我想要的只是总数,即$ 1677.15 in上面的例子。这样做的最佳非vba方法是什么?
两个问题:
答案 0 :(得分:0)
在您的示例中,总计数字始终是最后的第三个组。在这种情况下,您可以使用以下公式和定义的名称:
=IFERROR(--INDEX(TRIM(MID(SUBSTITUTE(A1," ",REPT(" ",99)),seq_99,99)),LEN(A1)-LEN(SUBSTITUTE(A1," ",""))-1),"")
定义的名称
seq refers to: =ROW(INDEX($1:$65535,1,1):INDEX($1:$65535,255,1))
seq_99 refers to: =IF(seq=1,1,(seq-1)*99)
在公式中,
SUBSTITUTE
:用大量(99)空格替换所有空格MID
返回由每个单词组成的数组(空格分隔)TRIM
删除多余空格的字词INDEX
返回距离结尾第三位的项目。IFERROR
处理第一行,不包含相关模式。seq
和seq_99
返回{
1,2,3,...} and
{1,99,198,...}的数组用于公式