笨办法- =LET(x,FILTER(F$12:F$34,E$12:E$34=I12),y,COUNTIFS(I$12:I$34,I12,K$12:K$34,"发放"),IF(y=COUNTIFS(I$12:I12,I12,K$12:K12,"发放"),x-SUMIFS(M$11:M11,I$11:I11,I12,K$11:K11,"发放"),INT(x/y)+(x-y*INT(x/y))*(RAND()>0.75)*(MAXIFS(M$11:M11,I$11:I11,I12,K$11:K11,"发放")<=INT(x/y)))*(K12="发放"))
复制代码
如果确保附件中的格式:①相同单位集中在一起;②发放集中在一块。并且支持动态数组溢出,则只需在每个单位的第1个发放的分配额度中使用公式:- =LET(x,FILTER(F$12:F$34,E$12:E$34=I12),y,COUNTIFS(I$12:I$34,I12,K$12:K$34,"发放"),IF(FREQUENCY(RAND(),RANDARRAY(y-1,,0,1)),x-INT(x/y)*(y-1),INT(x/y)))
复制代码
以上需要对应的版本支持。 |