从表单中获取数据并根据 Microsoft Forms 中的值填充到不同的表单中,无需#VALUE!错误

问题描述 投票:0回答:1

我有一个要求,我有一个 Microsoft 表单,当用户填写它时,它会捕获工作表中的数据。现在,表单由分支组成,这意味着字段会根据某个值发生变化。如下图所示,根据类型 A 或类型 B 填充表单。

This is what the entries look like

我想要做的是,我想根据下面的表格中的“Type A”、“Type B”或“Type C”填充不同的信息。

Sheets I want to populate data in

我尝试的是在工作表类型A中:

=IF(ISBLANK(OfficeForms.Table[@[Content Type]]),"",IF(OfficeForms.Table[@[Content Type]]="Type A",OfficeForms.Table[@[Content Type]],""))

当我使用上面的代码时,发生的情况是它留下了一个空白行,当我将公式拉到其他行时,它给出了#VALUE!错误。

#VALUE! error appearing

是否可以将公式应用于整个列而不显示 VALUE 错误。我知道这是一个表格,当表格被填写时#VALUE!开始消失,但我不希望它像那样显示。

我必须对不同工作表中的其他内容类型执行相同的操作。有更好的方法吗?任何建议将不胜感激。

谢谢。

excel excel-formula
1个回答
0
投票

如果您有 Microsoft 365 版 Excel,您可以尝试使用 FILTER

  • 使用变量
    Content Type
    并将其用作列名称
    "Type " & type & " [info field 1]"
  • 由于我们将在多个工作表中重复使用该公式,因此我们将创建函数,并将
    type
    作为输入
  • 首先,为了进行测试,请在
    Type A
    表中输入此内容,您要在其中填充结果:
=LAMBDA(type,
    LET(
        col_headers, HSTACK(
            "Id",
            "Type " & type & " [info field 1]",
            "Type " & type & " [info field 2]"
        ),
        cols, CHOOSECOLS(
            OfficeForms.Table,
            XMATCH(col_headers, OfficeForms.Table[#Headers])
        ),
        VSTACK(
            col_headers,
            FILTER(cols, OfficeForms.Table[Content type] = "Type " & type)
        )
    )
)("A") 

Restult of formula testing

我们将为公式命名。

  • 复制公式,省略
    ("A")
    (即参数)
  • 然后在名称管理器>新建中添加一个以
    getResults
    为名称的命名公式
  • 将复制的公式粘贴到参考:
  • 现在我们可以将它与不同类型一起使用:
    =getResults("A")

Name Manager and using the formula

© www.soinside.com 2019 - 2024. All rights reserved.