填写 ={ARRAYFORMULA()} 中几列的空白单元格
Fill in blank cells from several columns in ={ARRAYFORMULA()}
我有一个人性化的 sheet,具有稀疏的分层数据:
SEASON | FRUIT | LETTER
-----------------------------
Winter | |
| Lemons |
| | Delta
Summer | |
| | Alpha
| | Beta
| Pears |
| | Gamma
(请注意 Alpha
和 Beta
没有 FRUIT
条目。)
我想使用 ARRAYFORMULA()
生成一个新列,以包含 LETTER
:
的完整“路径”
SEASON | FRUIT | LETTER | PATH
------------------------------------
Winter | | | Winter//
| Lemons | | Winter/Lemons/
| | Delta | Winter/Lemons/Delta
Summer | | | Summer//
| | Alpha | Summer//Alpha
| | Beta | Summer//Beta
| Pears | | Summer/Pears/
| | Gamma | Summer/Pears/Gamma
请帮助我理解如何写这样的ARRAYFORMULA()
。
我正在尝试基于 中的答案的方法,但我一直坚持将 FRUIT
重置为空字符串以获得新的 SEASON
。 IE。这个天真的实现会产生 Summer/Lemons/Alpha
而不是 Summer//Alpha
:
={ ARRAYFORMULA(
IFERROR(VLOOKUP(ROW(SEASON), IF(SEASON<>"", { ROW(SEASON), SEASON }), 2, 1), "")
& "/" & IFERROR(VLOOKUP(ROW(FRUIT), IF(FRUIT<>"", { ROW(FRUIT), FRUIT }), 2, 1), "")
& "/" & LETTER
) }
这是专门为回答这个问题而创建的 sample spreadsheet。
您将在名为“可能的解决方案”的选项卡上的单元格 E1 中找到此公式。
=ARRAYFORMULA(IF(LEN(A:A&B:B&C:C),VLOOKUP(ROW(A:A),FILTER({ROW(A:A),A:A},LEN(A:A)),2,1)&"/"&VLOOKUP(ROW(B:B),FILTER({ROW(B:B),B:B},LEN(A:A&B:B)),2,1)&"/"&C:C,))
它使用 VLOOKUP(ROW(),FILTER(),[index],TRUE) 技术将路径的相关部分相互附加。
注意图像中的公式部分,我认为这是您正在尝试的策略的问题症结...
我有一个人性化的 sheet,具有稀疏的分层数据:
SEASON | FRUIT | LETTER
-----------------------------
Winter | |
| Lemons |
| | Delta
Summer | |
| | Alpha
| | Beta
| Pears |
| | Gamma
(请注意 Alpha
和 Beta
没有 FRUIT
条目。)
我想使用 ARRAYFORMULA()
生成一个新列,以包含 LETTER
:
SEASON | FRUIT | LETTER | PATH
------------------------------------
Winter | | | Winter//
| Lemons | | Winter/Lemons/
| | Delta | Winter/Lemons/Delta
Summer | | | Summer//
| | Alpha | Summer//Alpha
| | Beta | Summer//Beta
| Pears | | Summer/Pears/
| | Gamma | Summer/Pears/Gamma
请帮助我理解如何写这样的ARRAYFORMULA()
。
我正在尝试基于 FRUIT
重置为空字符串以获得新的 SEASON
。 IE。这个天真的实现会产生 Summer/Lemons/Alpha
而不是 Summer//Alpha
:
={ ARRAYFORMULA(
IFERROR(VLOOKUP(ROW(SEASON), IF(SEASON<>"", { ROW(SEASON), SEASON }), 2, 1), "")
& "/" & IFERROR(VLOOKUP(ROW(FRUIT), IF(FRUIT<>"", { ROW(FRUIT), FRUIT }), 2, 1), "")
& "/" & LETTER
) }
这是专门为回答这个问题而创建的 sample spreadsheet。
您将在名为“可能的解决方案”的选项卡上的单元格 E1 中找到此公式。
=ARRAYFORMULA(IF(LEN(A:A&B:B&C:C),VLOOKUP(ROW(A:A),FILTER({ROW(A:A),A:A},LEN(A:A)),2,1)&"/"&VLOOKUP(ROW(B:B),FILTER({ROW(B:B),B:B},LEN(A:A&B:B)),2,1)&"/"&C:C,))
它使用 VLOOKUP(ROW(),FILTER(),[index],TRUE) 技术将路径的相关部分相互附加。
注意图像中的公式部分,我认为这是您正在尝试的策略的问题症结...