Google sheets 基于列表从另一张图纸上的单元格中提取值

Google sheets 基于列表从另一张图纸上的单元格中提取值,google-sheets,google-sheets-formula,array-formulas,Google Sheets,Google Sheets Formula,Array Formulas,我在一张纸上有一份数据清单。第二张表用于显示谁做了什么,如仪表板。我得到了一个数组公式,用于生成查找员工姓名的数据,如果他们在已完成课程的列表中,则显示该数据。如果是,仪表板上相应课程编号下会列出“是”。我无法确定需要用什么来更改REGEXREPLACE,以从数据列表中显示日期列,而不是“是”。我知道REGEXREPLACE只对文本值有效,而日期不起作用——即使将日期列更改为文本似乎也无关紧要 以下是当前数组公式的工作示例: 以下是使用的公式: =ARRAYFORMULA(IF(A5:A=“”

我在一张纸上有一份数据清单。第二张表用于显示谁做了什么,如仪表板。我得到了一个数组公式,用于生成查找员工姓名的数据,如果他们在已完成课程的列表中,则显示该数据。如果是,仪表板上相应课程编号下会列出“是”。我无法确定需要用什么来更改REGEXREPLACE,以从数据列表中显示日期列,而不是“是”。我知道REGEXREPLACE只对文本值有效,而日期不起作用——即使将日期列更改为文本似乎也无关紧要

以下是当前数组公式的工作示例:

以下是使用的公式:

=ARRAYFORMULA(IF(A5:A=“”),REGEXREPLACE(IFNA(VLOOKUP)(A5:A,
查询({TRIM('formresponses1'!B2:G)},“选择Col1,按Col1枢轴Col6计数(Col1)分组”),匹配(F2:P2,
查询(查询({TRIM('formresponses1'!B2:G)},“选择Col1,按Col1透视Col6计数(Col1)分组”),“限制0”,1),0),0)和“,”,“\d+,“是”))


在上面的示例中,我需要从表单响应表上的D栏填写日期。

这里是第一次尝试,可能会对您有所帮助

这是一个简单的查询,它提取日期和数据轴,使员工姓名位于左侧,课程名称位于顶部

但它并没有试图将数据与现有的员工列表进行匹配——它只是列出了所有提交表单的员工。因此,如果您想查看所有员工,并为尚未提交表单的员工保留空行,则此操作不适用于您

A2中的公式为:

=ARRAYFORMULA(QUERY({'Form Responses 1'!B2:G}, "select Col1,max(Col3) where Col1<>'' group by Col1 pivot Col6 order by Col1"))
=ARRAYFORMULA(查询({'Form Responses 1'!B2:G},“选择Col1,max(Col3),其中Col1''按Col1透视Col6按Col1排序”))
参见添加到样本表中的表1 GK

让我知道这是否有帮助,或者如果你需要一些不同的东西

更新: 要将结果限制为特定的课程列表,请使用以下修改:

=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 "))
=ARRAYFORMULA(查询({'Form Responses 1'!B2:G}),
选择Col1,max(Col3),其中Col1“
和Col6匹配'&TEXTJOIN(“|”,1,F2:2)&''
按列分组1透视列6按列排序1“))

在这里,需要报告的课程列表在F2:2中,您最初在那里有它们,但是这个列表可以保存在任何地方,甚至在另一个选项卡上。如果你命名放置它的区域,这可以简化这个公式。现在,您可以隐藏第2行。我把它分组,在左边,隐藏它。使用[+]再次显示它。

这是可能对您有所帮助的第一次尝试

这是一个简单的查询,它提取日期和数据轴,使员工姓名位于左侧,课程名称位于顶部

但它并没有试图将数据与现有的员工列表进行匹配——它只是列出了所有提交表单的员工。因此,如果您想查看所有员工,并为尚未提交表单的员工保留空行,则此操作不适用于您

A2中的公式为:

=ARRAYFORMULA(QUERY({'Form Responses 1'!B2:G}, "select Col1,max(Col3) where Col1<>'' group by Col1 pivot Col6 order by Col1"))
=ARRAYFORMULA(查询({'Form Responses 1'!B2:G},“选择Col1,max(Col3),其中Col1''按Col1透视Col6按Col1排序”))
参见添加到样本表中的表1 GK

让我知道这是否有帮助,或者如果你需要一些不同的东西

更新: 要将结果限制为特定的课程列表,请使用以下修改:

=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 "))
=ARRAYFORMULA(查询({'Form Responses 1'!B2:G}),
选择Col1,max(Col3),其中Col1“
和Col6匹配'&TEXTJOIN(“|”,1,F2:2)&''
按列分组1透视列6按列排序1“))

在这里,需要报告的课程列表在F2:2中,您最初在那里有它们,但是这个列表可以保存在任何地方,甚至在另一个选项卡上。如果你命名放置它的区域,这可以简化这个公式。现在,您可以隐藏第2行。我把它分组,在左边,隐藏它。使用[+]再次显示它。

基本上就是这样-我只需要看到提交了表格的员工,这样就完美了。如何将课程列表过滤到汇总表上列出的内容?我已经把它放在那里了,但是删除了它,以为你想要所有的课程。给我一分钟时间更新表格…基本上就是这样-我只需要看到提交了表格的员工,这样就完美了。如何将课程列表过滤到汇总表上列出的内容?我已经把它放在那里了,但是删除了它,以为你想要所有的课程。给我一分钟更新一下表格。。。