根据列表从另一个 Sheet 上的单元格中提取值
Extract Value from Cell on Another Sheet Based on List
我有一个 sheet 上的数据列表。第二个 sheet 用于显示谁做了什么,就像仪表板一样。我得到了一个数组公式来生成查找员工姓名的数据,并在他们出现在已完成课程的列表中时显示它。如果是这样,仪表板上相应课程编号下会列出“是”。我不知道我需要用什么来更改 REGEXREPLACE 来显示数据列表中的日期列而不是“是”。我知道 REGEXREPLACE 只适用于文本值,而日期不是 - 即使将日期列更改为文本似乎也不重要。
这是当前数组公式的一个工作示例:
这里是使用的公式:
=ARRAYFORMULA(IF(A5:A="",,REGEXREPLACE(IFNA(VLOOKUP(A5:A,
QUERY({TRIM('Form Responses 1'!B2:G)}, "select Col1,count(Col1) group by Col1 pivot Col6"), MATCH(F2:P2,
QUERY(QUERY({TRIM('Form Responses 1'!B2:G)}, "select Col1,count(Col1) group by Col1 pivot Col6"), "limit 0", 1), 0), 0))&"", "\d+", "yes")))
在上面的示例中,我需要表单回复中的 D 栏的完成日期 sheet。
这是第一次尝试,可能会对您有所帮助。
这是一个简单的查询,它提取日期,然后旋转以将员工姓名放在左侧,将课程名称放在顶部。
但它不会尝试将数据与现有的员工列表相匹配 - 它只会列出所有已提交表单的员工。因此,如果您想查看所有员工,其中未提交表格的员工为空行,这对您不起作用。
A2中的公式为:
=ARRAYFORMULA(QUERY({'Form Responses 1'!B2:G}, "select Col1,max(Col3) where Col1<>'' group by Col1 pivot Col6 order by Col1"))
请参阅选项卡 Sheet1-GK,已添加到您的样本中 sheet。
让我知道这是否有帮助,或者您是否需要不同的东西。
更新:
要将结果限制为特定的课程列表,请使用以下修改:
=ARRAYFORMULA(QUERY({'Form Responses 1'!B2:G},
"select Col1,max(Col3) where Col1<>''
and Col6 matches '" & TEXTJOIN("|",1,F2:2) & "'
group by Col1 pivot Col6 order by Col1 "))
此处,要报告的所需课程列表在 F2:2 中,您最初拥有它们的位置,但此列表可以保存在任何地方,甚至可以保存在另一个选项卡上。如果您命名放置它的范围,则可以稍微简化此公式。现在,您可以只隐藏第 2 行。我已将其分组在左侧以隐藏它。使用[+]再次显示它。
我有一个 sheet 上的数据列表。第二个 sheet 用于显示谁做了什么,就像仪表板一样。我得到了一个数组公式来生成查找员工姓名的数据,并在他们出现在已完成课程的列表中时显示它。如果是这样,仪表板上相应课程编号下会列出“是”。我不知道我需要用什么来更改 REGEXREPLACE 来显示数据列表中的日期列而不是“是”。我知道 REGEXREPLACE 只适用于文本值,而日期不是 - 即使将日期列更改为文本似乎也不重要。
这是当前数组公式的一个工作示例:
这里是使用的公式:
=ARRAYFORMULA(IF(A5:A="",,REGEXREPLACE(IFNA(VLOOKUP(A5:A,
QUERY({TRIM('Form Responses 1'!B2:G)}, "select Col1,count(Col1) group by Col1 pivot Col6"), MATCH(F2:P2,
QUERY(QUERY({TRIM('Form Responses 1'!B2:G)}, "select Col1,count(Col1) group by Col1 pivot Col6"), "limit 0", 1), 0), 0))&"", "\d+", "yes")))
在上面的示例中,我需要表单回复中的 D 栏的完成日期 sheet。
这是第一次尝试,可能会对您有所帮助。
这是一个简单的查询,它提取日期,然后旋转以将员工姓名放在左侧,将课程名称放在顶部。
但它不会尝试将数据与现有的员工列表相匹配 - 它只会列出所有已提交表单的员工。因此,如果您想查看所有员工,其中未提交表格的员工为空行,这对您不起作用。
A2中的公式为:
=ARRAYFORMULA(QUERY({'Form Responses 1'!B2:G}, "select Col1,max(Col3) where Col1<>'' group by Col1 pivot Col6 order by Col1"))
请参阅选项卡 Sheet1-GK,已添加到您的样本中 sheet。
让我知道这是否有帮助,或者您是否需要不同的东西。
更新: 要将结果限制为特定的课程列表,请使用以下修改:
=ARRAYFORMULA(QUERY({'Form Responses 1'!B2:G},
"select Col1,max(Col3) where Col1<>''
and Col6 matches '" & TEXTJOIN("|",1,F2:2) & "'
group by Col1 pivot Col6 order by Col1 "))
此处,要报告的所需课程列表在 F2:2 中,您最初拥有它们的位置,但此列表可以保存在任何地方,甚至可以保存在另一个选项卡上。如果您命名放置它的范围,则可以稍微简化此公式。现在,您可以只隐藏第 2 行。我已将其分组在左侧以隐藏它。使用[+]再次显示它。