这样的转换,用函数能做到吗?

这样的转换,用函数怎么做到叫呢? 如下图
四川省
浏览 111
收藏
1
分享
1 +1
7
+1
全部评论 7
 
李强
用数据透视表啊!不用公式
· 山西省
回复
 
song
song

WPS寻令官

回答:使用这个公式,然后填充一下: =IFERROR(INDEX($A:$A,SMALL(IF($C:$C=F$1,ROW($C:$C)),ROW($A1))),"") 公式由内向外拆解: if公式,作用是如果C列的数据和F1单元格一致,则返回C列对应的行数,如果不一致,则报错。这里就是把对应批号的数据在的位置找到,不是这个批号的数据变成错误值。 small公式:返回数组中第Row(A1)个最小值,上一步if提取出对应批号所有的位置行数,这里返回其中最小的值,第一个单元格返回ROW(A1)第几个就返回A几,ROW又是返回单元格的行数,那这里你填充到第几行就返回第几个最小值。 index公式:在前面的small公式已经确认了第几个批号的位置,这个函数就是通过这个位置去找到对应列所在位置的数据。到这里就找到了对应批次的对应数据。 最外面的ifferror就是把错误值替换为空值,因为查找到最后一个对应的批号后,往后再也没有这个批号了,就会报错,把这些错误替换为空值就用这个公式
· 广东省
回复
song
song

WPS寻令官

这里的$A:$A,,$C:$C建议修改为区间,比如$A$1:$A$20这样,注意哪些地方需要添加绝对引用的
· 广东省
1
回复
 
lio
DROP(IFNA(REDUCE("批号",UNIQUE(C2:C16),LAMBDA(x,y,HSTACK(x,VSTACK(y,IF(y="/","",TOCOL(EXPAND(WRAPROWS(FILTER(A2:A16,C2:C16=y),4),,5,""),2)))))),""),-1)是这个意思吗?
· 湖北省
1
回复
 
Esc2Exit
回答 用countif试试
· 河北省
回复