【问题标题】:Fill in blank cells from several columns in ={ARRAYFORMULA()}填写 ={ARRAYFORMULA()} 中几列的空白单元格
【发布时间】:2021-11-15 08:32:13
【问题描述】:

我有一个包含稀疏分层数据的人性化工作表:

SEASON  | FRUIT      | LETTER 
-----------------------------
Winter  |            |
        | Lemons     |
        |            | Delta
Summer  |            |
        |            | Alpha
        |            | Beta
        | Pears      |
        |            | Gamma

(注意AlphaBeta 没有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()


我正在尝试基于Fill in blank cells in ={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
) }

【问题讨论】:

    标签: google-sheets google-sheets-formula array-formulas


    【解决方案1】:

    这是专门为回答这个问题而创建的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) 技术将路径的相关部分相互附加。

    请注意图像中公式的部分,我认为这是您尝试的策略问题的症结...

    【讨论】:

      猜你喜欢
      • 2021-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-13
      相关资源
      最近更新 更多