EXCEL表格 把ABCDE同行的数字统计到J列,遇到重复数,把FGHI列依次补上?

比较复杂些,如下图,把ABCDE,同行的数据统计到J列,如果遇到重复数,把F列的补上,补完如果不够4个不重复数,继续补G列的,依次类推,要依次从F\G\G\I列补到5个不重复的数字。【像表格的结果,不能跳跃补数】【表格比较大,方法可以直接拖动达到自动计算结果】【答案要严谨,要自己核算过的】答案带上公式哦

可以使用如下公式来实现这个需求:

=IFERROR(INDEX($F2:2:F1000, MATCH(1, (1000,MATCH(1,(A2:2:A1000=1000=J2)($B2:2:B1000=1000=J3)($C2:2:C1000=1000=J4)($D2:2:D1000=1000=J5)($E2:2:E1000=1000=J6)*($F2:2:F$1000<>""), 0)),"")

这里假设数字统计的数据放在ABCDE列中,需要把它们统计到J列。FGHI列用于在J列出现多次的情况下存储后续的数字。

具体解释一下每个部分的含义:

    INDEX($F2:2:F1000: 我们要取出重复数所对应的FGHI值中的第一个值(也就是在最先出现的那行上),因此使用INDEX函数从1000:我们要取出重复数所对应的FGHI值中的第一个值(也就是在最先出现的那行上),因此使用INDEX函数从F2:2:F$1000范围内取出所有FGHI列中的F列数据;

    MATCH(1, ($A2:2:A1000=1000=J2)($B2:2:B1000=1000=J3)($C2:2:C1000=1000=J4)($D2:2:D1000=1000=J5)($E2:2:E1000=1000=J6)*($F2:2:F$1000<>""), 0)): 使用MATCH函数来查找满足指定条件的第一个数据行。在这个例子中,指定的条件为ABCDE列与J列完全匹配,且FGHI列中F列不为空;

    $A2:2:A1000=1000=J2:这里使用了绝对引用,确保在填充公式时这个范围不会发生变化。这部分判断的是A列是否与指定值相等,如果相等则返回TRUE,否则返回FALSE;

    *: 数组公式需要逐行检查每个条件,*符号用于进行多个条件的逻辑AND运算;

    ($F2:2:F$1000<>"")): 最后还要检查 F 列是否不为空。

    整个公式的思路是:

    先以 J列 为基础, 在 ABCDEFGH 这几

温馨提示:答案为网友推荐,仅供参考
第1个回答  2023-05-26

    将ABCDE列同行的数据统计到J列中。

    在K列中输入公式 "=IF(COUNTIF($J1:J1,J1)>1,INDEX(1:J1,J1)>1,INDEX(F:$F,MATCH(0,COUNTIF(K1:K1,1:K1,F:$F),0)),J1)",然后拖动该公式向下填充至K列的最后一行。这个公式的作用是:如果当前行的数据在前面出现过,则在F列中找到第一个未出现在K列中的数字填充在当前行;否则,直接将当前行的数据填充在K列中。

    统计K列中不重复的数字数量,如果不足4个,则在L列中输入公式 "=IF(COUNTIF($K1:K1,K1)>1,INDEX(1:K1,K1)>1,INDEX(G:$G,MATCH(0,COUNTIF(L1:L1,1:L1,G:$G),0)),K1)",然后拖动该公式向下填充至L列的最后一行。这个公式的作用是:如果当前行的数据在前面出现过,则在G列中找到第一个未出现在L列中的数字填充在当前行;否则,直接将当前行的数据填充在L列中。

    统计L列中不重复的数字数量,如果不足4个,则在M列中输入公式 "=IF(COUNTIF($L1:L1,L1)>1,INDEX(1:L1,L1)>1,INDEX(G:$G,MATCH(0,COUNTIF(M1:M1,1:M1,G:$G),0)),L1)",并拖动该公式向下填充至M列的最后一行。该公式与L列的公式相似,其作用是在G列中找到一个未出现在M列中的数字填充在当前行。

    类似地,在N列和O列中分别采用公式 "=IF(COUNTIF($M1:M1,M1)>1,INDEX(1:M1,M1)>1,INDEX(I:$I,MATCH(0,COUNTIF(N1:N1,1:N1,I:I),0)),M1)" 和 "=IF(COUNTIF(I),0)),M1)"和"=IF(COUNTIF(N1:N1,N1)>1,INDEX(1:N1,N1)>1,INDEX(I:$I,MATCH(0,COUNTIF(O1:O1,1:O1,I:$I),0)),N1)" 进行补齐操作,直到最后列数能够囊括至少5个不重复的数字。

第2个回答  2023-05-16

公式=LET(um,UNIQUE(A2:I2,1,0),ct,COUNTA(um),IF(ct<5,TEXTJOIN(",",,IFNA(EXPAND(um,1,5),0)),TEXTJOIN(",",,TAKE(um,,5)))),适合excel365,公式向下拖动填充。

具体结果如下图所示:

追问

有没有适合2016版本的?

第3个回答  2023-05-16

可以使用 Excel 中的 SUMIF 函数和 IF 函数来实现这个功能。

假设 A 列到 E 列是需要统计的数字,J 列是统计结果,F 列到 H 列是需要补充的数据,可以按照以下步骤进行操作:

    在 J 列输入以下公式:=SUMIF(A1:E1,"<>",A1:E1),这个公式可以将 A 列到 E 列中非空单元格的数字相加,得到统计结果。

    在 K 列输入以下公式:=IF(COUNTIF($A1:$E1,J1)>1,F1,IF(COUNTIF($A1:$E1,J1)=1,"",G1)),这个公式可以判断 J 列中的数字在 A 列到 E 列中出现的次数,如果出现了一次,则不需要补充数据;如果出现了多次,则需要从 F 列到 H 列中依次补充数据。

    将 K 列的公式拖拽到 L 列和 M 列,即可得到完整的结果。

需要注意的是,这个公式只能处理一行数据,如果需要处理多行数据,需要将公式拖拽到下面的行中。

相似回答