小兔网

要实现Excel自动生成丁字账。

202106140908232126590

这是凭证,D列是总账科目,F列是借方,G列是贷方,需要将这三列的内容自动引用到丁字账。每个总账科目,都可能出现多次,要依次引用。

202106140908249012212


其实,这个用筛选公式就可以解决。


在A4输入公式,按Ctrl+Shift+Enter三键结束,下拉和右拉。

=IFERROR(INDEX(凭证!F:F,SMALL(IF(凭证!$D$2:$D$28=丁字账!$A$2,ROW($2:$28)),ROW(A1))),"")

202106140908265885194


其他科目也是用相同的方法完成,只需将A2改成实际的单元格就行,比如银行存款这个科目,就改成D2。

=IFERROR(INDEX(凭证!F:F,SMALL(IF(凭证!$D$2:$D$28=丁字账!$D$2,ROW($2:$28)),ROW(A1))),"")

202106140908284067856


公式剖析:


IF(凭证!$D$2:$D$28=丁字账!$A$2,ROW($2:$28)),如果凭证的总账科目=丁字账的科目,就返回本身的行号。总账科目的区域,跟ROW函数的区域要一致。


SMALL(IF部分,ROW(A1)),依次获取所有满足条件的行号,从小到大排序。


INDEX(凭证!F:F,SMALL部分),嵌套INDEX函数,就是返回行号的对应值,也就是凭证的借方。


=IFERROR(INDEX部分,""),嵌套IFERROR函数,就是让不满足的显示空单元格。


这个公式虽然比较难,但使用频率非常高。


额外资源

感谢您阅读excelxue的重要Excel功能指南!通过花时间学习和掌握这些功能,您将大大改善财务模型。要了解更多信息,请查看以下其他excelxue资源:

Excel函数知识

Excel数据分析

Excel案列展示