Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google sheets 如何在google工作表中进行增量排序 背景_Google Sheets_Spreadsheet_Google Sheets Api - Fatal编程技术网

Google sheets 如何在google工作表中进行增量排序 背景

Google sheets 如何在google工作表中进行增量排序 背景,google-sheets,spreadsheet,google-sheets-api,Google Sheets,Spreadsheet,Google Sheets Api,我正在制作一份电子表格,计划参加婚礼的人。将有男女分开的大厅,我们正在讨论应该邀请哪个年龄组的人。现在,我在我的工作表中找到了一个名为“年龄范围”的选项卡,它有以下年龄范围: 0-3 4-12 12-18 十八+ 我有一个标签,上面有不同的家庭,以及他们的性别、年龄范围等,如下所示: 汇总表如下: 问题: 制作此电子表格的目的是能够快速做出决策,例如:我们是否希望邀请x/y/z家庭中所有12岁以上的人,等等 我想在电子表格中做的是,如果我选择年龄组下拉列表,然后选择(比如)4-12岁,那

我正在制作一份电子表格,计划参加婚礼的人。将有男女分开的大厅,我们正在讨论应该邀请哪个年龄组的人。现在,我在我的工作表中找到了一个名为“年龄范围”的选项卡,它有以下年龄范围:

  • 0-3
  • 4-12
  • 12-18
  • 十八+
我有一个标签,上面有不同的家庭,以及他们的性别、年龄范围等,如下所示:

汇总表如下:

问题: 制作此电子表格的目的是能够快速做出决策,例如:我们是否希望邀请x/y/z家庭中所有12岁以上的人,等等

我想在电子表格中做的是,如果我选择年龄组下拉列表,然后选择(比如)4-12岁,那么我希望选择4-12岁年龄组中的每个人(以及年龄较大的人)。。现在,如果我选择4-12,那么只有4-12岁的人才会被列入名单

想法

(注意:请记住,我希望年龄组相同或更大,而不是相反。即如果选择了18岁以上的年龄组,我不希望包括18岁以下的任何人)

更新 这是一个可编辑的副本

更新2(我尝试过的) 我可以为一个值执行此操作:即通过运行以下命令,告诉我属于
heba_直系亲属
表中特定单元格的人是否属于等于或大于您选择的年龄范围组:


=匹配(vlookup(C23,‘年龄范围’!$A1:$B4,2),
{vlookup(heba_直系亲属!D2,‘年龄范围’!$A1:$B4,2)},1)

但是,我不知道如何将其扩展到包括整个表,即以下公式:


=数组公式(匹配(vlookup(C24,‘年龄范围’!$A1:$B4,2),vlookup(heba_直系亲属!D2:D19,‘年龄范围’!$A1:$B4,2),1))
返回此错误

在匹配计算中未找到值“0”


想法?

@abbood:处理这个问题最简单的方法是为你拥有的每个人口区间(即4-12)创建一个索引。为每个人分配一个最大值(即4-12将是12,因为服务员的最大年龄是12岁)。假设没有间隙,则可以使用此索引值进行过滤。您可以使用INDEX(MATCH())或VLOOKUP()将索引表与QUERY()或SUMIF()一起使用来聚合或筛选表。

在第二次更新中使用
MATCH
确实是一种方法,将其添加到您开始使用的
COUNTIFS
中。(针对范围的第一行进行了更正。)

正如屏幕截图中所示,您的
COUNTIFS
中的第一个条件是可以的,因此我们将从重建第二个条件开始。更具体地说,匹配的范围是什么,在样本中显示为C11。因为您需要创建一个累积选择而不是单个选择,所以我们需要使用不等运算符将单元格范围与年龄范围进行比较。如果没有给出任何值,
COUNTIFS
隐式默认为=进行比较。我们需要使用>=、大于或等于将其更改为显式比较,以便它匹配所选范围内的任何内容或更大的内容。这将产生:

=COUNTIFS(heba_immediate_family!C2:C, B11, heba_immediate_family!D2:D, ">="&C11)
下一个问题是,您的案例在我们认为的数字范围内使用了真正的文本字符串。要解决这个问题,我们需要使用
MATCH
函数<代码>匹配返回匹配项在范围中相对于范围开始的位置。您已经准备好了
年龄范围
表,我们可以使用它。但是,我们不需要第二列,因为我们将使用
MATCH
函数而不是
VLOOKUP
函数。然而,我们将从
MATCH
中获得的数字将与第二列中列出的数字相同,因此它确实是一个方便的参考。为了实现这一点,我们需要在比较的两侧使用
MATCH
,以便获得相同的参考点。
MATCH
函数通常在一个单元格上工作,因此我们还需要
ARRAYFORMULA
函数在数组意义上应用第一个
MATCH
。最后一点是
MATCH
函数默认假定给定范围按升序排序。因为年龄范围实际上是文本,所以它们不是文本。我们需要将可选的第三个参数设置为0来通知函数,现在我们可以看到:

=COUNTIFS(heba_immediate_family!C2:C, B11, ARRAYFORMULA(MATCH(heba_immediate_family!D2:D, 'age range'!A1:A, 0)), ">="&MATCH(C11, 'age range'!A1:A, 0))
如果您想在汇总表上的每个单元格中键入此内容,我们就完成了。如果您希望能够通过拖动来复制它,那么我们需要使用绝对符号$锁定一些范围引用。这将使我们:

=COUNTIFS(heba_immediate_family!C$2:C, B11, ARRAYFORMULA(MATCH(heba_immediate_family!D$2:D, 'age range'!A$1:A, 0)), ">="&MATCH(C11, 'age range'!A$1:A, 0))
我们可以做的另一件事是将公式中的工作表名称链接到第一列中的名称,以使其更易于使用。此步骤将需要更改图纸的命名方式,或更改“摘要”页面第一列中族的命名方式,以便它们相同。在汇总表的第一列中,您有
赫巴直系亲属
,它引用了名为
赫巴直系亲属
的表。由于键入下划线不如键入空格自然,因此我建议重命名工作表以删除下划线,但任何使两个匹配的方法都可以。完成此操作后,下一部分将使用
间接
函数将文本转换为图纸参考。实际上,由于它是如何工作的,我们将需要使用单元格中的文本作为其一部分,将其转换为范围引用。我们要做的是将单元格中的文本与范围的固定文本连接起来,就像年龄范围列中的
INDIRECT(A3&“!D$2:D”)
一样。对这两个范围执行此操作,并将其移动到汇总表的数据第一行中,将在单元格D3中给出最终版本,可根据需要在表中复制
=COUNTIFS(heba_immediate_family!C$2:C, B11, ARRAYFORMULA(MATCH(heba_immediate_family!D$2:D, 'age range'!A$1:A, 0)), ">="&MATCH(C11, 'age range'!A$1:A, 0))
=COUNTIFS(INDIRECT(A3&"!C$2:C"), B3, ARRAYFORMULA(MATCH(INDIRECT(A3&"!D$2:D"), 'age range'!A$1:A, 0)), ">="&MATCH(C3, 'age range'!A$1:A, 0))
=COUNTIFS(INDIRECT(A3&"!C$2:C"), "M", ARRAYFORMULA(MATCH(INDIRECT(A3&"!D$2:D"), 'age range'!A$1:A, 0)), ">="&MATCH(C3, 'age range'!A$1:A, 0))
=COUNTIFS(INDIRECT(A11&"!C$2:C"), "F", ARRAYFORMULA(MATCH(INDIRECT(A11&"!D$2:D"), 'age range'!A$1:A, 0)), ">="&MATCH(C11, 'age range'!A$1:A, 0))
=COUNTIFS(INDIRECT(A3&"!C$2:C), "M", ARRAYFORMULA(MATCH(INDIRECT(A3&"!D$2:D"), 'age range'!A$1:A, 0)), ">="&MATCH($E$1, 'age range'!A$1:A, 0))
=COUNTIFS(INDIRECT(A11&"!C$2:C), "F", ARRAYFORMULA(MATCH(INDIRECT(A11&"!D$2:D"), 'age range'!A$1:A, 0)), ">="&MATCH($E$1, 'age range'!A$1:A, 0))