工作表中的弹性报告数据 - 从多个工作表(相同的电子表格)中提取
Elastic Report Data in Sheets - Pulling from Multiple Sheets (Same Spreadsheet)
我使用 Google 表格跟踪试验,并为每个客户提供一个标签。在那个 sheet 中,有一个用于未完成项目的部分。我不必查看每个选项卡以查找未完成的项目,而是尝试将 'Open' 个汇总到一个摘要页面。
当项目从 'Open' 移动到 'Closed' 时,摘要页面需要是动态的,但也要自动考虑为启动的新客户试用创建的新标签。同样,数据可能并不总是从 A45 开始,如果我必须在上面添加内容,它可能从 A49 开始,但是我在上面的行中有一些东西可以尝试触发(如果可能的话)
尝试使用 FILTER
函数执行此操作,但存在问题。我要么必须手动添加每个页面,并有适当的间距,要么使用串联过滤器,说明有问题的确切单元格。
希望看到摘要页面是动态的(或尽可能动态)。
对于现有试验,如果我将某些内容从 'Open' 移动到 'Closed',它会从摘要页面中删除,其他所有内容都会向上移动。如果某些内容从 'Closed' 变回 'Open',请相应地插入并向下移动所有内容。
最好的情况是,当我将模板文件复制到新客户的新选项卡时,该新选项卡会自动包含在从中提取摘要报告的数据集中。
更新:
https://docs.google.com/spreadsheets/d/1759z0SoxANp--yt4HcI06-jpEt951ejJquYpwKE9V9E/edit?usp=sharing
这是我尝试做的事情的基础,但有一些手动操作和错误。
您可以看到 Cust-A 和 B 的问题数据是如何通过 FILTER
函数填充到 'Outstanding Issues' 选项卡中的。不幸的是,如果您要将客户 A 的 item4 的状态更改为 'Open',那么结果页面 (A3) 将转到 #REF!
状态,因为它现在需要 4 行,而第 4 行是手动的被下一个过滤器占用。此外,A 的 FILTER
与 B 不同,因为客户 B 有更多联系人和成功标准。
我真的很想有一些东西可以自动运行并查看每个 sheet,包括当我为客户 C 添加一个新选项卡时。这样我就不必定义正确数量的空格需要同时为每个新标签重做 FILTER
。
解决这个问题:
删除 A 列中的所有内容并将其粘贴到 A3 单元格中:
={FILTER('CUST-A'!A18:O29, 'CUST-A'!F18:F29="Open");
FILTER('CUST-B'!A20:O31, 'CUST-B'!F20:F31="Open")}
但这还不够,为了应对更多错误,您需要这样:
=QUERY(
{IFERROR(FILTER('CUST-A'!A18:O29, 'CUST-A'!F18:F29="Open"),
{"","","","","","","","","","","","","","",""});
IFERROR(FILTER('CUST-B'!A20:O31, 'CUST-B'!F20:F31="Open"),
{"","","","","","","","","","","","","","",""})},
"where Col1 is not null", 0)
那么你甚至可以这样做:
=QUERY(
{IFERROR(FILTER('CUST-A'!A18:O29, 'CUST-A'!F18:F29="Open"),
{"","","","","","","","","","","","","","",""});
IFERROR(FILTER('CUST-B'!A20:O31, 'CUST-B'!F20:F31="Open"),
{"","","","","","","","","","","","","","",""});
IFERROR(FILTER('CUST-C'!A20:O31, 'CUST-C'!F20:F31="Open"),
{"","","","","","","","","","","","","","",""});
IFERROR(FILTER('CUST-D'!A20:O31, 'CUST-D'!F20:F31="Open"),
{"","","","","","","","","","","","","","",""});
IFERROR(FILTER('CUST-E'!A20:O31, 'CUST-E'!F20:F31="Open"),
{"","","","","","","","","","","","","","",""})},
"where Col1 is not null", 0)
我使用 Google 表格跟踪试验,并为每个客户提供一个标签。在那个 sheet 中,有一个用于未完成项目的部分。我不必查看每个选项卡以查找未完成的项目,而是尝试将 'Open' 个汇总到一个摘要页面。
当项目从 'Open' 移动到 'Closed' 时,摘要页面需要是动态的,但也要自动考虑为启动的新客户试用创建的新标签。同样,数据可能并不总是从 A45 开始,如果我必须在上面添加内容,它可能从 A49 开始,但是我在上面的行中有一些东西可以尝试触发(如果可能的话)
尝试使用 FILTER
函数执行此操作,但存在问题。我要么必须手动添加每个页面,并有适当的间距,要么使用串联过滤器,说明有问题的确切单元格。
希望看到摘要页面是动态的(或尽可能动态)。 对于现有试验,如果我将某些内容从 'Open' 移动到 'Closed',它会从摘要页面中删除,其他所有内容都会向上移动。如果某些内容从 'Closed' 变回 'Open',请相应地插入并向下移动所有内容。 最好的情况是,当我将模板文件复制到新客户的新选项卡时,该新选项卡会自动包含在从中提取摘要报告的数据集中。
更新:
https://docs.google.com/spreadsheets/d/1759z0SoxANp--yt4HcI06-jpEt951ejJquYpwKE9V9E/edit?usp=sharing
这是我尝试做的事情的基础,但有一些手动操作和错误。
您可以看到 Cust-A 和 B 的问题数据是如何通过 FILTER
函数填充到 'Outstanding Issues' 选项卡中的。不幸的是,如果您要将客户 A 的 item4 的状态更改为 'Open',那么结果页面 (A3) 将转到 #REF!
状态,因为它现在需要 4 行,而第 4 行是手动的被下一个过滤器占用。此外,A 的 FILTER
与 B 不同,因为客户 B 有更多联系人和成功标准。
我真的很想有一些东西可以自动运行并查看每个 sheet,包括当我为客户 C 添加一个新选项卡时。这样我就不必定义正确数量的空格需要同时为每个新标签重做 FILTER
。
解决这个问题:
删除 A 列中的所有内容并将其粘贴到 A3 单元格中:
={FILTER('CUST-A'!A18:O29, 'CUST-A'!F18:F29="Open");
FILTER('CUST-B'!A20:O31, 'CUST-B'!F20:F31="Open")}
但这还不够,为了应对更多错误,您需要这样:
=QUERY(
{IFERROR(FILTER('CUST-A'!A18:O29, 'CUST-A'!F18:F29="Open"),
{"","","","","","","","","","","","","","",""});
IFERROR(FILTER('CUST-B'!A20:O31, 'CUST-B'!F20:F31="Open"),
{"","","","","","","","","","","","","","",""})},
"where Col1 is not null", 0)
那么你甚至可以这样做:
=QUERY(
{IFERROR(FILTER('CUST-A'!A18:O29, 'CUST-A'!F18:F29="Open"),
{"","","","","","","","","","","","","","",""});
IFERROR(FILTER('CUST-B'!A20:O31, 'CUST-B'!F20:F31="Open"),
{"","","","","","","","","","","","","","",""});
IFERROR(FILTER('CUST-C'!A20:O31, 'CUST-C'!F20:F31="Open"),
{"","","","","","","","","","","","","","",""});
IFERROR(FILTER('CUST-D'!A20:O31, 'CUST-D'!F20:F31="Open"),
{"","","","","","","","","","","","","","",""});
IFERROR(FILTER('CUST-E'!A20:O31, 'CUST-E'!F20:F31="Open"),
{"","","","","","","","","","","","","","",""})},
"where Col1 is not null", 0)