大数跨境
0
0

巧妙的筛选,查找指定总账客户及其下的一级明细数据?

巧妙的筛选,查找指定总账客户及其下的一级明细数据? Excel数据分析之道
2025-07-13
0
有这样一个表格,是系统导出的科目明细数据,现在要制作一个查询表,在单元格H2指定总账科目名称,然后得到该总账科目数据以及该科目下的一级明细数据。
首先是指定总账科目的数据,单元格G5公式如下

=FILTER(C2:E77,D2:D77=H2)

这个公式的思路很简单,直接从D列筛选指定的总账科目名称即可。
查找指定总账科目下的一级明细数据,单元格G6公式如下:

=FILTER(C2:E77,(LEFT(C2:C77,4)=XLOOKUP(H2,D2:D77,C2:C77))*(LEN(C2:C77)=6))

这个筛选公式是2个条件
条件1:使用XLOOKUP函数匹配出指定总账科目的科目编码,然后判断C列的科目编码前4位是不是这个总账科目编码:

LEFT(C2:C77,4)=XLOOKUP(H2,D2:D77,C2:C77)

条件2:由于是要筛选总账科目下的一级明细数据,而一级明细数据的特征是6位的科目编码,因此这个条件如下:

LEN(C2:C77)=6


这样的数据筛选,是不是很简单?


这个案例,需要能熟练运用FILTER函数,XLOOKUP函数,LEFT函数,LEN函数,而这几个函数本身非常简单。


如果想设计一个综合公式,自动生成一个带标题的完整报表,则可以使用下面的公式:


=VSTACK(

C1:E1, 

FILTER(C2:E77,D2:D77=H2), 

FILTER(C2:E77,(LEFT(C2:C77,4)=XLOOKUP(H2,D2:D77,C2:C77))*(LEN(C2:C77)=6))

)


或者使用LET函数将简化公式,提高阅读性:


=LET(

指定科目名称, H2,

标题, C1:E1,

数据区域, C2:E77,

科目编码, C2:C77,

科目名称, D2:D77,

总账科目编码, XLOOKUP(指定科目名称,科目名称,科目编码),

总账科目数据, FILTER(数据区域, 科目名称=指定科目名称),

一级明细数据, FILTER(数据区域,(LEFT(科目编码,4)=总账科目编码)*(LEN(科目编码)=6)),

VSTACK(标题, 总账科目数据, 一级明细数据)

)



【声明】内容源于网络
0
0
Excel数据分析之道
全面介绍Excel在企业数据分析中的各种应用,实际案例模板分享,经验心得,帮助个人和企业提升Excel应用能力。
内容 1106
粉丝 0
Excel数据分析之道 全面介绍Excel在企业数据分析中的各种应用,实际案例模板分享,经验心得,帮助个人和企业提升Excel应用能力。
总阅读54
粉丝0
内容1.1k