题来!大佬速来!左边原数据,右边2种格式目标表,不用辅助列,
excel吧
全部回复
仅看楼主
吧务
level 12
题来!大佬速来!
左边原数据,右边2种格式目标表,不用辅助列,只用函数,生成目标表,单函数或者填充函数都行!
2026年09月23日 03点09分 1
吧务
level 12
大佬们都放假了么?
2026年09月23日 07点09分 2
level 8
=LET(
姓名, FILTER($A$2:$A$100, $A$2:$A$100<>""),
关系, FILTER($B$2:$B$100, $A$2:$A$100<>""),
组, SCAN(0, 关系, LAMBDA(a, v, a+(v="户主"))),
户主, FILTER(姓名, 关系="户主"),
结果, REDUCE({"户主","成员","成员数"}, SEQUENCE(ROWS(户主)), LAMBDA(a, g, VSTACK(a, HSTACK(INDEX(户主, g), TEXTJOIN("、", TRUE, FILTER(姓名, 组=g)), SUM(--(组=g)))))),
结果
)
2026年09月23日 09点09分 5
level 8
2026年09月23日 09点09分 6
好强!!
2026年09月23日 11点09分
后面成员公式呢?怎样编写的,还有数字
2026年09月25日 23点09分
我也想做你这个表,能提供一下如何生成的吗?
2026年09月25日 23点09分
@小樹林 自动溢出的,只有一条公式
2026年09月26日 02点09分
level 14
=HSTACK(FILTER(A:A,B:B=B2),DROP(GROUPBY(SCAN(0,B2:B14,LAMBDA(x,y,IF(y=B2,x+1,x))),A2:A14,HSTACK(ARRAYTOTEXT,ROWS),,0),1,1))
2026年09月23日 22点09分 7
level 9
=LET(a,SCAN("",B2:B13,LAMBDA(x,y,IF(y=B2,OFFSET(y,,-1),x))),DROP(GROUPBY(a,A2:A13,HSTACK(ARRAYTOTEXT,ROWS),0,0),1))
试试看
2026年09月24日 01点09分 8
@白度总管CEO =LET(a,SCAN(0,B2:B17,LAMBDA(x,y,IF(y=B2,x+1,x))),b,SCAN("",B2:B17,LAMBDA(x,y,IF(y=B2,B2,"成员"))),CHOOSECOLS(TAKE(PIVOTBY(a,b,A2:A17,HSTACK(ARRAYTOTEXT,ROWS),0,0,,1,-1),-4),{2,4,7})) 试试看
2026年09月24日 13点09分
还是聚合香
2026年09月24日 01点09分
可以的,,大佬试试目标表2
2026年09月24日 01点09分
level 2
textsplit+textjoin
2026年09月24日 01点09分 9
写写试试,,,
2026年09月24日 01点09分
level 9
=LET(a,CONCAT(SCAN("",B2:B17,LAMBDA(x,y,IF(y=B2,"/"&OFFSET(y,,-1)&";",OFFSET(y,,-1)&",")))),c,DROP(TEXTSPLIT(a,";","/"),1),d,LEN(TAKE(c,,-1))-LEN(SUBSTITUTE(TAKE(c,,-1),",",""))+1,HSTACK(TAKE(c,,1),IFERROR(LEFT(TAKE(c,,-1),LEN(TAKE(c,,-1))-1),""),d))
有点啰嗦
2026年09月24日 14点09分 10
你试试改成聚合函数,,比较简单些!
2026年09月25日 01点09分
@白度总管CEO 有啊,上面回复你了。
2026年09月25日 03点09分
哦,,原来都是你呀,大佬!
2026年09月25日 23点09分
level 4
1、=DROP(GROUPBY(SCAN(0,B2:B27="户主",SUM),A2:A27,HSTACK(SINGLE,LAMBDA(x,TEXTJOIN("、",,x)),ROWS),0,0),1,1)
2、=DROP(GROUPBY(SCAN(0,B2:B27="户主",SUM),A2:A27,HSTACK(SINGLE,LAMBDA(x,TEXTJOIN("、",,IFERROR(DROP(x,1),""))),ROWS),0,0),1,1)
2026年11月07日 18点11分 12
level 11
样式1:=LET(a,SCAN(,A2:A31,LAMBDA(x,y,IF(OFFSET(y,,1)="户主",y,x))),DROP(GROUPBY(HSTACK(MATCH(a,UNIQUE(a),),a),A2:A31,HSTACK(ARRAYTOTEXT,ROWS),,0),1,1))
样式2:=LET(a,SCAN(,A2:A31,LAMBDA(x,y,IF(OFFSET(y,,1)="户主",y,x))),DROP(GROUPBY(HSTACK(MATCH(a,UNIQUE(a),),a),IF(B2:B31<>"户主",A2:A31,""),LAMBDA(x,HSTACK(TEXTJOIN(",",,x),ROWS)),,0),,1))
有谁能说出我的样式2的公式为什么没能把成员数算出来吗?和样式1一样,也是用ROWS算,两个数组用HSTACK堆起来。我自己没发现什么问题。大佬速速仙灵显灵!
2026年11月08日 07点11分 13
问题1:LAMBDA(x,HSTACK(TEXTJOIN(",",,x),ROWS))应更正为HSTACK(LAMBDA(x,TEXTJOIN(",",,x)),ROWS) 问题2:SCAN得到序列值作为GROUPBY的行字段可以防止户主重名
2026年11月08日 11点11分
@委婉东风09 感谢。第一,在LAMBDA中HSTACK堆叠多个计算时,我需要对HSTACK的位置重新明确。第二,确实容易忽视重名的问题,应该考虑周全。
2026年11月08日 12点11分
level 11
样式2:=LET(n,SCAN(0,B2:B31,LAMBDA(x,y,x+(y="户主"))),m,SCAN(,A2:A31,LAMBDA(x,y,IF(OFFSET(y,,1)="户主",y,x))),DROP(GROUPBY(HSTACK(n,m),IF(B2:B31="户主","",A2:A31),HSTACK(LAMBDA(x,TEXTJOIN(",",,x)),ROWS),,0),1,1))
2026年11月09日 06点11分 14
1