如何在Excel中创建基于标准的动态列表(3种方法)

  • Share This
Hugh West

今天我将展示如何在Excel中根据单个或多个标准创建一个动态列表。

下载实践工作手册

基于标准的动态列表.xlsx

什么是Excel中的动态列表?

动态列表是一个从数据集中创建的列表,当原始数据集中的任何数值发生变化,或者新的数值被添加到原始数据集中时,该列表会自动更新。

在给定的图片中,我们有一份所有分数大于1分的学生的名单。 60 在考试中。

现在,如果你把珍妮弗-马洛的标记从 68 58 并添加一个名为罗斯-史密斯的新学生,分数为 81 表中,列表将自动调整。

这被称为动态列表。

在Excel中基于标准创建动态列表的3种方法

这里我们有一个数据集,其中有 学生证。 名称。 符号 在一所名为 "向日葵幼儿园 "的学校里的一些学生。

我们今天的目标是根据这个数据集的标准制作一个动态列表。 我们今天将使用单个和多个标准。

1.使用FILTER和OFFSET函数(适用于新版本的Excel)

首先,我们将使用一个组合的 筛选器 , 关节 ,以及 COUNTA Excel的功能。

ǞǞǞ 筛选器 函数可在 办公室365 因此,这只适用于那些有 办公室365 订阅。

案例1:基于单一标准

让我们试着把平均分大于或等于的学生做成一个动态列表 60 .

你可以使用这个公式。

=FILTER(OFFSET(C5,0,0,COUNTA(C:C)-1,1),OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)

正如你所看到的,我们已经得到了一份所有学生的名单,他们的成绩超过了 60 .

很明显,这是一个动态列表。 你可以改变数据集中的任何值,或者在数据集中添加任何新的值。

列表将自动调整。

公式的解释。

  • COUNTA(C:C) 返回C列中非空白的行数。 所以 COUNTA(C:C)-1 返回有数值的行的数量,这些数值不包括 专栏标题 ( 学生姓名 在这个例子中)。
  • 如果你没有 专栏标题 ,使用 COUNTA(C:C)
  • offset(c5,0,0,counta(c:c)-1,1) 从细胞开始 C5 (第一个学生的名字),并返回所有学生的名字范围。
  • ǞǞǞ 关节 函数,并结合 COUNTIF功能 如果有更多的学生加入到数据集中,则 COUNTA(C:C)-1 公式中,将增加 1 关节 职能将包括学生。
  • 同样地。 OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60 返回 为真 为所有大于或等于的标记的 60 .
  • 最后。 FILTER(OFFSET(C5,0,0,COUNTA(C:C)-1,1),OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60) 返回所有分数超过100分的学生名单 60 .
  • 如果任何新的学生被添加到数据集中。 COUNTA(C:C)-1 增长幅度为 1 ,以及 筛选器 函数刷新了包括它在内的计算。
  • 因此,该公式始终保持动态。

请注意。

如果你想在获得标记的同时获得列表中的名字,只要改变第一个参数的第五个参数即可 关节 功能,从 1 2 .

=FILTER(OFFSET(C5,0,0,COUNTA(C:C)-1,2),OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)

案例2:基于多个标准

这次让我们尝试多种标准。

我们将尝试制作一个动态列表,列出分数大于或等于60分,但ID小于或等于60分的学生。 200 .

你可以使用这个公式。

=FILTER(OFFSET(C5,0,0,COUNTA(C:C)-1,1),(OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)*(OFFSET(B5,0,0,COUNTA(B:B)-1,1)<=200)

正如你所看到的,我们已经得到了一份所有分数超过100分的学生名单。 60 并有 身份证 小于 200 .

而且不用说了,这是一个动态的名单。

如果你改变任何数值或在数据集中添加任何新的学生,列表会自动调整。

公式的解释。

  • 这里我们把两个动态范围的标准相乘。 (OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60) *(OFFSET(B5,0,0,COUNTA(B:B)-1,1)<=200)
  • 如果你有超过 2 标准,以同样的方式乘以所有的标准范围。
  • 其余部分与之前的例子(单一标准)相同。 关节 函数,并结合 COUNTA 函数被用来保持公式的动态性。

请注意。

如果你想看到列表中的所有列( B列,C列。 D 在这个例子中),改变第一个参数的 关节 函数对第一列( B5 在这个例子中),第五个参数是总列数( 3 在这个例子中)。

=FILTER(OFFSET(B5,0,0,COUNTA(C:C)-1,3),(OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60) *

(OFFSET(B5,0,0,COUNTA(B:B)-1,1)<=200))

阅读更多:Excel从表创建动态列表(3种简单方法)

2. 与其他函数一起使用INDEX-MATCH(适用于旧版本)。

那些没有的人 办公室365 订阅不能使用上述公式。

我为那些使用旧版Excel的人展示了一种更复杂的方法,即使用 index-match, offset, small, if, row, countif, COUNTIFS 请注意,这些公式是数组公式。 因此,要在旧版本的Excel中应用这些公式,你需要按 按Ctrl+Shift+Enter键 而不是直接输入。

案例1:基于单一标准

创建超过或等于60分的学生的动态列表的公式是:。

=INDEX(OFFSET(C5,0,0,COUNTA(C:C)-1,1),MATCH(SMALL(IF(OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60。

OFFSET(D5,0,0,COUNTA(D:D)-1,1),"),ROW(A1:INDIRECT("A"&COUNTIF(D:D,">=60")))),OFFSET(D5,0,0,COUNTA(D:D)-1,1),0)

正如你所看到的,我们再次得到了所有得到超过或等于的学生的名字。 60 .

这一次,我们按数字的升序排列。

是的,这个列表是动态的。 在数据集中添加一个新的学生,或者改变数据集中任何学生的分数。

列表会自动调整。

公式的解释。

  • 这里 C:C 是我们想从中提取的列表内容的列( 学生姓名 在这个例子中)。 你用你的一个。
  • D:D 是指标准所在的列( 平均分 在这个例子中)。 你用你的一个。
  • C5 D5 是我的数据从哪里开始的单元格(就在 专栏标题 ).你用你的一个。
  • ">=60" 是我的标准(大于或等于 60 在这个例子中)。 你用你的一个。
  • 除了这几处改动外,保持公式的其余部分不变,并在你的数据集中使用它。 你将根据你所期望的标准得到一个动态列表。

案例2:基于多个标准

ǞǞǞ INDEX-MATCH 不过,我还是要展示一下。

得到分数大于或等于的学生姓名的公式是 60 ,但有 身份证 小于 200 将是。

=INDEX(OFFSET(C5,0,0,COUNTA(C:C)-1,1),MATCH(SMALL(IF((OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)*)

(OFFSET(B5,0,0,COUNTA(B:B)-1,1)<=200),OFFSET(D5,0,0,COUNTA(D:D)-1,1),"),ROW(A1:INDIRECT("A"&COUNTIFS(B:B,"=60")))),OFFSET(D5,0,0,COUNTA(D:D)-1,1),0)

公式的解释。

  • 这里 C:C 是我们想从中提取的列表内容的列( 学生姓名 在这个例子中)。 你用你的一个。
  • B:B D:D 是标准所在的列( 学生证 平均分 在这个例子中)。 你用你的一个。
  • B5,C5。 D5 是我的数据从哪里开始的单元格(就在 专栏标题 ).你用你的一个。
  • 我在这里乘以了两个标准。 (OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60) *(OFFSET(B5,0,0,COUNTA(B:B)-1,1)<=200) .如果你有两个以上的标准,请相应地乘以。
  • 我再次使用了这里面的两个标准 COUNTIFS 功能。 countifs(b:b,"=60") . 你相应地使用你的那些。
  • 保持公式的其余部分不变,并在你的数据集中使用它。 你将得到一个具有多个标准的动态列表。

阅读更多:如何在Excel中使用VBA制作一个动态数据验证列表

3.使用数据验证工具创建一个基于标准的动态下拉列表

现在我们已经创建了动态列表。 如果你愿意,你可以 创建一个动态的下拉列表 在你的工作表的任何单元格中。

  • 要创建动态下拉列表,选择工作表中的任何单元格,然后进入 数据> 数据验证> 数据验证 根据 数据工具 节。

  • 你会得到 数据验证 对话框下。 允许 选项,选择 列表 而在 来源 选项,在工作表中输入列表所在的第一个单元格的引用,以及一个 HashTag (#) ( $E$5# 在这个例子中)。

  • 然后点击 认可 你将在你选择的单元格中得到一个下拉列表,像这样。

阅读更多:如何在Excel中使用VBA创建动态下拉列表

如何在Excel中创建基于标准的动态唯一列表

在本节中,我们将展示如何在Excel中根据标准创建一个独特的列表。 我们将使用一个组合的 獨特的 筛选器 我们修改了数据集,并添加了每个学生最喜欢的游戏。 现在,想知道游戏的名称,并根据标准去除重复的游戏。 标准是学生的平均分数必须大于 60 .

📌 步骤。

  • 把基于公式的组合 獨特的 筛选器 的功能 细胞G5 .
=UNIQUE(FILTER(E5:E25,(D5:D25>60))

我们根据标准得到一个独特的名单。

公式的解释。

  • FILTER(E5:E25,(D5:D25>60)

这将过滤掉 范围E5:E25 具备的条件是,平均分数必须高于 60 .

结果:[网球、排球、橄榄球、网球、足球、橄榄球、橄榄球、足球] 。

  • UNIQUE(FILTER(E5:E25,(D5:D25>60))

这将返回前一个结果中所有的唯一值。

结果: [网球、排球、橄榄球、足球] 。

总结

使用这些方法,你可以在Excel的任何数据集中根据单个或多个标准创建一个动态列表。 请看一下我们的网站 ǞǞǞ 并在评论框中提出你的建议。

Hugh West is a highly experienced Excel trainer and analyst with over 10 years of experience in the industry. He holds a Bachelor's degree in Accounting and Finance and a Master's degree in Business Administration. Hugh has a passion for teaching and has developed a unique teaching approach that is easy to follow and understand. His expert knowledge of Excel has helped thousands of students and professionals worldwide improve their skills and excel in their careers. Through his blog, Hugh shares his knowledge with the world, offering free Excel tutorials and online training to help individuals and businesses reach their full potential.