Table of contents
今天我将展示如何在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的任何数据集中根据单个或多个标准创建一个动态列表。 请看一下我们的网站 ǞǞǞ 并在评论框中提出你的建议。