Excel编码大师,我想有人给我一个手在下面的问题:
我拥有的:
我有一个Excel 2019。不是365版。我有一个2列的Excel表。列I包含人员列表。I列中的每个人都有他/她的原籍国,在H列的相应单元格中表示。
为了看得更清楚,请看这张照片。
我有两个 * 下拉启用 * 单元格(K4和L4)。
K4包含所有国家的列表,见H栏。
L4应该有一个人员列表,列中有I
现在的问题是
我如何对K4和L4单元格进行编码,以便在K4单元格中选择国家时,在L4单元格的下拉列表中,我将仅获得I列中原籍国与K4中的原籍国相同的人员的列表?
我觉得用那些返回数组的函数是可以做到的,但我就是不能把我的头都包起来。
2条答案
按热度按时间vhmi4jdf1#
到目前为止我都是这样工作的。
执行此操作所需的函数为
INDEX
、MATCH
、IF
、IFERROR
和COUNTIF
,这些函数在Excel 2019中都可用。唯一的事情,我挣扎(没有365)是,我不知道如何消除白色的动态范围。
“E”列中的公式是制作“国家”列的唯一列表:
此公式必须至少从第2行开始,因为它需要在第2行上方保留一个空格。
列F是列I的类似唯一列表,但是基于
K4
中的值是动态的:*现已更新,请参阅下面的编辑内容K4
中的验证基于E列,L4
中的验证基于F列。正如我所说的,没有O365,我不知道如何删除白色,但这至少应该为您工作。
编辑:我又看了一遍,弄清楚了空格的问题:
L4
的数据确认:另外,
K4
的数据验证可以类似,如果您想扩展列H
以包含更多条目:这将从
F2
(始终是我们的第一个值)创建一个列表,并将动态扩展到F
列有数据,假设我们将F2
中的公式更改为:注意,这个公式的
IFERROR
和上一个公式的COUNTIF
中的字符不是空格,而是Alt+255
中的字符。最后一个细节是,在单元格
L4
中添加一些条件格式,以便在L4
中选择数据,然后更改K4
的值(使L4
不再有效),将返回空白-这实际上是白色背景上的白色文本。L4
的条件格式公式:1mrurvl12#
以下是我对@RGilchrist上面回答的详细阐述。他的观点是主要的,因此所有的功劳也都归于他。
执行此操作所需的函数为
INDEX
、MATCH
、IF
、IFERROR
和COUNTIF
,这些函数在Excel 2019中都可用。"E"列中的公式是制作"国家"列的唯一列表:
=IFERROR(INDEX($H$2:$H$17;MATCH(0;COUNTIF($E$1:$E1;$H$2:$H$17);0));"")
例如,在图片上,您可以看到单元格
E2
的公式。对这一公式的一些评论:
Ctrl+Shift+Enter
输入到单元格中,你可以看到它是用花括号{}
括起来的。E1
。0
放置到E1
单元格中。=IFERROR(INDEX(Tab_1[Стовпець1];MATCH(0;COUNTIF($E$1:$E2;Tab_1[Стовпець1]);0));"")
,其中Tab_1
是我声明的表的名称,[Стовпець1]
是表中列的名称。列F是列I的类似唯一列表,但是基于
K4
中的值是动态的:=IFERROR(INDEX($I$2:$I$20,MATCH(0,IF($K$4=$H$2:$H$20,COUNTIF($F$1:$F1,$I$2:$I$20),""),0)),"")
对先前公式的所有评论也适用于本公式。
K4
中的数据验证基于E列,L4
中的验证基于F列。但为了克服生成的下拉列表中的空白问题,数据验证应基于使用OFFSET函数的公式。因此K4
的数据验证源应为=OFFSET($E$2;;;COUNTIF($E$2:$E$10;"?*"))
相关的屏幕截图是在我的区域设置,但一般的界面应该是熟悉的。