excel函数技巧:textsplit+reduce数据提取及表格合成-趣帮office教程网

如图A列为源数据,是一个字符串,内容是关于三个人的消费情况,如何通过公式提取出每个人的消费金额,及剩余金额。公式如下:

=LET(

split,DROP(TEXTSPLIT(A1,TEXTSPLIT(A1,VSTACK(SEQUENCE(10)-1,"元","块",".","aa","小红","小明","小兰"),,1),),,2),

fil,FILTER(split,ISERROR(--split)),

sub,REDUCE(fil,VSTACK("块","元"),LAMBDA(x,y,SUBSTITUTE(x,y,""))),

built_array,XLOOKUP(SEQUENCE(,COLUMNS(sub)),SEQUENCE(,COLUMNS(sub))/ISERROR(--sub),sub,,-1),

person_money,MAP(C2:E2,LAMBDA(x,SUM(--FILTER(sub,(built_array=x)*(IF(ISNUMBER(--sub),--sub,0)))))),

HSTACK(person_money,500-SUM(person_money)))

公式思路:此例首先涉及到的是数据清洗,通过split、fil、sub三个变量完成。涉及多个函数的使用,也基本将数据清洗的主要思路展现出来,大家不妨看一下:

split变量:保留数字、"元","块",".","aa","小红","小明","小兰"等信息。

fil变量:提取split变量的非数字数据。

sub变量:去除单位,变为数字形式。