发布日期:2024-12-25 08:37 点击次数:107
excel索求指定条目下的重迭数据,然后盾用它对应的其他列数据,是这节的主要内容。
如数据表案例所示,咱们要援用日历疏通,购买编号疏通的重迭数据,过头对应列数据,并按照购买编号进行排序。
这是一个购买记载表,其中购买日历和购买编号齐全疏通,被视为重迭数据,是以它现实是上对适合条目的重迭数据进行援用。
时常咱们索求重迭数据,会使用countif函数来定位重迭值,然后再进行援用,但在前置条目下,则需要使用其他函数进行应用。
率先咱们要将购买时辰中的日历索求出来,通过datevalue函数将时辰调理为日历,然后与购买编号进行合并,构成一个新的文本组合,则可输入公式为:
=DATEVALUE(D2:$D$485)&$A$2:$A$485
datevalue函数是复返一个日历对应的数值,这里是将购买时辰中的日历平直调理为日历,以当作索求重迭值的前提条目。
然后将得到的数值与购买编号投合并,会得到一个合并文本,当日历值和编号齐全疏通,则示意它标记条目“吞并天疏通的购买编号”。
随后咱们使用一个函数组合,来查询每个新文本在通盘新文本列表中出现的次数,则输入公式为:
=FIND(TRANSPOSE(DATEVALUE(D2:$D$485)&$A$2:$A$485),DATEVALUE(D2:$D$485)&$A$2:$A$485)
这个find函数公式,它的语法抒发式为:=find(查找值,文本)
咱们通过transpose函数将前边公式得到的效果进行转置,行将原来的一列效果,调理为一转效果,然后当作find函数的查找值,在新文本列表中进行查询,它会得到多行多列的数组效果。
其中效果知道为1,则示意在新文本列表中查询到了查找值,然后value值示意未查询到查找值,复返值了演叨值效果。
此时咱们通过一个容错函数,将演叨值通盘调理为0,则输入公式为:
=IFERROR(FIND(TRANSPOSE(DATEVALUE(D2:$D$485)&$A$2:$A$485),DATEVALUE(D2:$D$485)&$A$2:$A$485),0)
从上图公式效果可见,咱们得到了1和0构成的多行多列数组。
接下来咱们要对每行效果进行汇总,如若大于就是2,则示意查找值在新文本列表中出现了2次及以上,即出现了重迭数据。
咱们来看公式:
=BYROW(IFERROR(FIND(TRANSPOSE(DATEVALUE(D2:$D$485)&$A$2:$A$485),DATEVALUE(D2:$D$485)&$A$2:$A$485),0),SUM)
在excel中扩凑数组的逐行筹划,咱们会使用新版块函数byrow,它大要对多行多列数据,逐行地按照特定的汇总函数,来进行筹划。
它的语法抒发式为:=byrow(数组,函数)
是以上头公式的含义,是对find函数查询到的数值效果进行乞降统计,得到如上图公式所示的效果。
接下来咱们给byrow函数设立一个判断式:
=FILTER($A$2:$D$485,BYROW(IFERROR(FIND(TRANSPOSE(DATEVALUE(D2:$D$485)&$A$2:$A$485),DATEVALUE(D2:$D$485)&$A$2:$A$485),0),SUM)>=2)
当查询到的总次数大于就是2,则示意包含了重迭数据,此时它会复返一个逻辑值为true,凭据filter函数运算规定,它会筛选true值对应的援用区域数据,如若援用区域设立为多列,则筛选对应的多列效果。
于是就得到了适合条目的,吞并天出现2次及以上疏通购买编号的重迭效果,并平直复返了重迭效果对应的其他列的内容。
终末咱们还要按照购买编号来扩凑数据排序,因此嵌套一个sort函数,则无缺公式为:
=SORT(FILTER($A$2:$D$485,BYROW(IFERROR(FIND(TRANSPOSE(DATEVALUE(D2:$D$485)&$A$2:$A$485),DATEVALUE(D2:$D$485)&$A$2:$A$485),0),SUM)>=2),1)
这个公式看似复杂,但从每步公式的组合来看,逻辑是明晰的,咱们是行使datevalue函数将时辰调理为日历,然后与购买编号构成新文本,当新文本重迭时,则示意它是吞并天的重迭购买,随后行使find与transpose函数嵌套,来查询每个新文本在通盘新文本列表中出现的次数,再扩充逐行汇总,当汇总效果大于就是2,则示意数据重迭,此时设立一个判断抒发式,赢得一组逻辑值效果,并当作filter函数的第二参数条目,来扩充重迭数据的筛选。
诚然逻辑明晰,但其中波及的函数较多,对生手有一定难度,咱们需措施会其中每个函数的函,以及多个函数嵌套所抒发的作用!