在表格中彼此内部有多个 ARRAYFORMULA(multi-level 循环)?
Multiple ARRAYFORMULA inside each other (multi-level loop) in Sheets?
我可能会以错误的方式解决这个问题,但我想做的是,从本质上讲,创建一个循环将 "Categories" 和 "Subcategories" 拉入一个公式。
Parents
| Name |
|----------|
| Cat 1 |
| Cat 2 |
| Cat 3 |
| Cat 4 |
|----------|
Children
| Name |
|----------|
| Sub 1 |
| Sub 2 |
|----------|
正在努力实现:
最终输出(选项 1)
| Name | Child Of |
|----------|----------|
| Cat 1 | |
| Sub 1 | Cat 1 |
| Sub 2 | Cat 1 |
| Cat 2 | |
| Sub 1 | Cat 2 |
| Sub 2 | Cat 2 |
| Cat 3 | |
| Sub 1 | Cat 3 |
| Sub 2 | Cat 3 |
| Cat 4 | |
| Sub 1 | Cat 4 |
| Sub 2 | Cat 4 |
|----------|----------|
或者,最终输出(选项 2)
| Name | Child Of |
|----------|----------|
| Cat 1 | |
| Cat 2 | |
| Cat 3 | |
| Cat 4 | |
| Sub 1 | Cat 1 |
| Sub 2 | Cat 1 |
| Sub 1 | Cat 2 |
| Sub 2 | Cat 2 |
| Sub 1 | Cat 3 |
| Sub 2 | Cat 3 |
| Sub 1 | Cat 4 |
| Sub 2 | Cat 4 |
|----------|----------|
我试过连接 ARRAYFORMULA
以及将它放在自身内部,但它根本不起作用。我什至不确定如何搜索这个特定问题(尽管我在 Google 和 SO 中尽了最大努力,但一无所获)。
=ARRAYFORMULA(SPLIT({FILTER(A1:A, A1:A<>""); UNIQUE(
TRANSPOSE(SPLIT(REPT(CONCATENATE(B1:B&CHAR(9)), COUNTA(A1:A)), CHAR(9)))&"♠"&
TRANSPOSE(SPLIT(CONCATENATE(REPT(A1:A&CHAR(9), COUNTA(B1:B))), CHAR(9))))}, "♠"))
我可能会以错误的方式解决这个问题,但我想做的是,从本质上讲,创建一个循环将 "Categories" 和 "Subcategories" 拉入一个公式。
Parents
| Name |
|----------|
| Cat 1 |
| Cat 2 |
| Cat 3 |
| Cat 4 |
|----------|
Children
| Name |
|----------|
| Sub 1 |
| Sub 2 |
|----------|
正在努力实现:
最终输出(选项 1)
| Name | Child Of |
|----------|----------|
| Cat 1 | |
| Sub 1 | Cat 1 |
| Sub 2 | Cat 1 |
| Cat 2 | |
| Sub 1 | Cat 2 |
| Sub 2 | Cat 2 |
| Cat 3 | |
| Sub 1 | Cat 3 |
| Sub 2 | Cat 3 |
| Cat 4 | |
| Sub 1 | Cat 4 |
| Sub 2 | Cat 4 |
|----------|----------|
或者,最终输出(选项 2)
| Name | Child Of |
|----------|----------|
| Cat 1 | |
| Cat 2 | |
| Cat 3 | |
| Cat 4 | |
| Sub 1 | Cat 1 |
| Sub 2 | Cat 1 |
| Sub 1 | Cat 2 |
| Sub 2 | Cat 2 |
| Sub 1 | Cat 3 |
| Sub 2 | Cat 3 |
| Sub 1 | Cat 4 |
| Sub 2 | Cat 4 |
|----------|----------|
我试过连接 ARRAYFORMULA
以及将它放在自身内部,但它根本不起作用。我什至不确定如何搜索这个特定问题(尽管我在 Google 和 SO 中尽了最大努力,但一无所获)。
=ARRAYFORMULA(SPLIT({FILTER(A1:A, A1:A<>""); UNIQUE(
TRANSPOSE(SPLIT(REPT(CONCATENATE(B1:B&CHAR(9)), COUNTA(A1:A)), CHAR(9)))&"♠"&
TRANSPOSE(SPLIT(CONCATENATE(REPT(A1:A&CHAR(9), COUNTA(B1:B))), CHAR(9))))}, "♠"))