如何根据值的总和创建组?
How do I create groups based on the sum of values?
我找不到这样的东西,也许我找错地方了,因为我在编程方面的知识非常有限,所以我们将不胜感激。
如果在 Microsoft Excel 中有一种方法可以在没有代码的情况下执行此操作,但如果需要代码,请告诉我代码是什么或我如何自己编写它来帮助我。
我需要能够根据单个列中值的总和来制作单独的行组。这可以通过在达到设定的总和值后插入 "Total" 行或通过对达到该总和值的每个组进行颜色编码来完成。
所以,我看到需要发生的顺序是:
在多列的一列中table,按顺序对行求和(如果可能,从我选择的行开始)
一旦总和达到某个值,但不超过该值,这些行将组合在一起
这发生在 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
...等等
或者通过颜色编码不同的组:
数据 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
我找不到这样的东西,也许我找错地方了,因为我在编程方面的知识非常有限,所以我们将不胜感激。
如果在 Microsoft Excel 中有一种方法可以在没有代码的情况下执行此操作,但如果需要代码,请告诉我代码是什么或我如何自己编写它来帮助我。
我需要能够根据单个列中值的总和来制作单独的行组。这可以通过在达到设定的总和值后插入 "Total" 行或通过对达到该总和值的每个组进行颜色编码来完成。
所以,我看到需要发生的顺序是:
在多列的一列中table,按顺序对行求和(如果可能,从我选择的行开始)
一旦总和达到某个值,但不超过该值,这些行将组合在一起
这发生在 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
...等等
或者通过颜色编码不同的组:
数据 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