如何根据值的总和创建组?

How do I create groups based on the sum of values?

我找不到这样的东西,也许我找错地方了,因为我在编程方面的知识非常有限,所以我们将不胜感激。

如果在 Microsoft Excel 中有一种方法可以在没有代码的情况下执行此操作,但如果需要代码,请告诉我代码是什么或我如何自己编写它来帮助我。

我需要能够根据单个列中值的总和来制作单独的行组。这可以通过在达到设定的总和值后插入 "Total" 行或通过对达到该总和值的每个组进行颜色编码来完成。

所以,我看到需要发生的顺序是:

  1. 在多列的一列中table,按顺序对行求和(如果可能,从我选择的行开始)

  2. 一旦总和达到某个值,但不超过该值,这些行将组合在一起

  3. 这发生在 table 的整个长度上,根据行的总和尽可能接近设置值创建单独的组

例如:

从这个数据开始:

客户。 │数量│类型

A│2│L

B │4│XL

C│4│M

D│9│S

E│1│L

F│9│M

G│10│L

高│1│大

我│1│XL

J│5│L

K│1│M

大号│5│小号

M│4│S

N│2│S

根据值 10 对数量求和并进行检查,然后相应地分组:

客户。 数量类型

A│2│L

B │4│XL

C│4│M

│**Total: 10**│ 

D│9│S

E│1│L

│**Total: 10**│ 

F│9│M

│**Total: 9**│

G│10│L

│**Total: 10**│ 

高│1│大

我│1│XL

J│5│L

K│1│M

│**Total: 8**│

大号│5│小号

M│4│S

│**Total: 9**│  

N│2│S

...等等

或者通过颜色编码不同的组:

Color Coded Groups

数据 table 不断变化,旧行被删除,新行被添加。 table 在提取信息后是静态的,因此每次提取更新数据时我都需要能够轻松应用它。

另外,如果可能的话,算法需要足够动态,这样如果我插入、删除或重新排列组会自动更新的行。

如有任何帮助、建议或意见,我们将不胜感激。由于需要排序的数据量很大,手动执行此操作非常耗时且麻烦。

提前感谢您的帮助。

一个仅使用 excel 的解决方案是这样的:

1) 在 table 中添加另外三个列:"Total"、"Starts Group" 和 "Group Number"。所以 table 有 5 列:

Customer Quantity Type Total Starts Group Group Number

2) 在 headers 和数据行之间添加一个空行 - 这将使制作和维护公式更加容易。

3) 在第三行,即实际数据 (A | 2 | L) 的第一行,为三个新列输入以下公式:

"Total" -> =IF(SUM(B3+D2)>10,B3,SUM(B3+D2))
"Starts Group" -> =IF(SUM(B3+D2)>10,TRUE,FALSE)
"Group Number" -> =IF(E3,F2+1,F2)

4) "Group Number" 列包含您需要的信息。您可以使用该值对行进行颜色编码。此外,table 应该是完全动态的 - 您可以根据需要 add/remove 行,它会被重新计算。

因此您的具体示例如下所示:

OrderID  Contract  Price  BuySell  OrderType  Quantity
1        ZS        10914  Buy                        6
2        ZS        10916  Buy                        4
3        ZL         3188  Sell                       9
4        ZM         3981  Sell                       9
5        ZM         3985  Sell                       2
6        ZS        10914  Buy                       10
7        ZL         3186  Sell                       9
8        ZM         3982  Sell                      11
9        ZS        10910  Buy                        2
10       ZS        10911  Buy                        4
11       ZS        10913  Buy                        2
12       ZS        10914  Buy                        4
13       ZL         3184  Sell                       9
14       ZM         3983  Sell                      11
15       ZS        10926  Buy                       10
16       ZL         3184  Sell                       9
17       ZM         3983  Sell                      11
18       ZS        10926  Buy                       10
19       ZL         3184  Sell                       9
20       ZM         3983  Sell                      11