
本文于2023年3月11日首发于本人同名公众号:Excel活学活用,敬请关注!
如果有小伙伴用Eexcel记账的,有没有碰到这种情况?
科目代码、科目名称的输入总是不太方便:
直接输入吧,不仅效率低而且极易有一个科目出现多个不同的内容;
那我们用数据有效性吧(现在叫数据验证),从科目列表中选择,这样虽然能解决科目统一的问题,但如果科目数量较多,选择起来还是有点不方便的。
今天我就给大家介绍一个方法,也是使用数据验证,但可以通过关键字缩小选择范围:

说明一下制作过程:
一、制作科目表:
科目表表头是科目代码、科目名称、科目编码、科目筛选
其中,科目编码是科目代码+“_"+科目名称,这做的目的是为了便于科目排序。
科目筛选,是一个数组公式,编辑输入后要按Ctrl+Shift+Enter:
{=INDEX(C:C,SMALL(IF(ISNUMBER(FIND(CELL("contents"),科目编码)),ROW(科目编码),4^8),ROW(C1)))&""}
把它从D2单元格,一直复制到下面最后一条科目处。它是用来提取包含单元格输入内容的科目的。我们在科目表中空白单元格输入内容,就可以看得比较清楚了。

在这之前,我们定义了一个名称:科目编码

然后,又定义了一个名称:科目筛选

最后,我们在“凭证”表需要输入科目的地方进行数据验证的设置:
在D列,我们设置了数据验证,数据源是名称“科目编码",对应“科目”表的C列数据,只能直接选择:

在E列,我们也设置了数据验证,数据源是名称“科目筛选",对应“科目”表的D列数据,它是根据我们输入的内容而变化的,如果我们直接点“凭证"表的E列单元格的下拉箭头,我们看到是没有数据的,或者是我们上次输入形成的数据。

这里我们要注意,要把“出错警告”选项下的“输入无效数据时显示出错警告”前的钩去掉。在每次输入时,都要点下拉箭头来筛选。
怎么样?是不是很方便?
好了,今天的分享就到这里,感兴趣的小伙伴可以自己琢磨琢磨。
本文使用 文章同步助手 同步,于2023年3月11日首发于本人同名公众号:Excel活学活用,敬请关注!