如图所示,有 3 a、4 b、7 c、11 d、6 f 和其他 id 组。这里我想把ID分成几组。它最多可以划分为 30 个,但 id 本身是一个组的 id 不应被划分。如此处所示,第一组可以由 25 个 id 组成。如果我们除以 30,那么其中一个 F id 将溢出到下一组,但我不希望这种情况发生。同理,下一组是29。因为pp之后的k id是6,并且由于上一组不能是35并且一个组不能超过30,所以k id包含在下一组中。下一组是20。因为我们不能包含v,也就是说,我们不能除掉它。下一组是 19。由于我们无法整除 v,也无法整除下一个 x,因此该组仅由 v 组成。简而言之,我们最多可以划分 30 个,但无法将组与组本身分开。同样,分组 ID 应该取自分组编号。前任。 Grup 20,Grup 29 ..我该如何执行此功能,vba?不知何故我无法成功。你能帮我吗 ?先感谢您。 (两张图中,左边的分组是错误的,右边的分组是正确的
[.)
[
坦白说,我尝试了chatgpt,得到了左边的结果。更准确地说,这是最健康的结果。我还应该提一下,我的 Excel 知识并不好。但我正在努力。谢谢。
="Grup "&
INDEX(
REDUCE({0,1},G2:G60,
LAMBDA(x,y,
LET(v,TAKE(x,-1,1),
n,TAKE(x,-1,-1),
w,COUNTIF(G2:G60,y),
VSTACK(x,
IF(COUNTIF(G2:y,y)=1,
IF(v+w>30,
HSTACK(w,n+1),
HSTACK(v+w,n)),
TAKE(x,-1))))))
,,2)
这会创建一个范围内 id 的 COUNTIF 的滚动计数器,在超过 30 之前重置并向组中添加数字。 INDEX 仅对组进行索引,忽略滚动计数器。