我有一组电子表格,它们定义了一组业务规则。这些业务规则然后由我们的系统处理。通过对数据进行分组来减少行数
创建电子表格的用户做得太天真了,我发现通过将行间数据分解 - 从而减少规则数量 - 极大地提高了系统的性能。
其中的“天真”结构化的电子表格可能是这样的:
+-----------+------------+------------+------------+------------+--------+
| Rule Name | Criteron 1 | Criteron 2 | Criteron 3 | Criteron 4 | Accept |
+-----------+------------+------------+------------+------------+--------+
| Rule 1 | A | B | C | | Yes |
| Rule 2 | A | C | C | | Yes |
| Rule 3 | A | D | C | | Yes |
| Rule 4 | A | E | C | | Yes |
| Rule 5 | A | F | C | | Yes |
| Rule 6 | A | B | D | | Yes |
| Rule 7 | A | C | D | | Yes |
| Rule 8 | A | D | D | | Yes |
| Rule 9 | A | E | D | | Yes |
| Rule 10 | A | F | D | | Yes |
| Rule 11 | A | B | E | | Yes |
| Rule 12 | A | C | E | | Yes |
| Rule 13 | A | D | E | | Yes |
| Rule 14 | A | E | E | | Yes |
| Rule 15 | A | F | E | | Yes |
| Rule 16 | | | | G | Yes |
| Rule 17 | | | | H | Yes |
| Rule 18 | | | | I | Yes |
| Rule 19 | | | | J | Yes |
| Rule 20 | | | | K | Yes |
| Rule 21 | | | | L | Yes |
| Rule 22 | | | | M | Yes |
| Rule 23 | | | | N | No |
| Rule 24 | | | | O | No |
| Rule 25 | | | | P | No |
| Rule 26 | | | | Q | No |
| Rule 27 | | | | R | No |
| Rule 28 | | | | S | No |
| Rule 29 | A | J | F | | No |
| Rule 30 | A | K | F | | No |
+-----------+------------+------------+------------+------------+--------+
作为一个例子,第1条将被评估为:
IF (Criterion 1 == A) AND (Criterion 2 == B) AND (Criterion 3 == C) THEN Accept
必须思考和假设我们可以在我们的列中使用OR条件,上面的可以简化为:
+-----------+------------+------------+------------+-------------+--------+
| Rule Name | Criteron 1 | Criteron 2 | Criteron 3 | Criteron 4 | Accept |
+-----------+------------+------------+------------+-------------+--------+
| Rule 1 | A | B,C,D,E,F | C,D,E | | Yes |
| Rule 2 | | | |G,H,I,J,K,L,M| Yes |
| Rule 3 | | | |N,O,P,Q,R,S | No |
| Rule 4 | A | J,K | F | | No |
+-----------+------------+------------+------------+-------------+--------+
规则1现在是评估如下:
IF (Criterion 1 == A) AND
(Criterion 2 == B OR Criterion 2 == C OR...) AND
(Criterion 3 == C OR Criterion 3 == D OR...) THEN Accept
现在,我已经做了这个手动。我想知道的是:Excel是否具有内置功能来为我进行这种分组。如果没有,任何人都可以指向我的算法的方向,这将有助于我有效地实现这一点?
您可能需要更好地描述您在缩减输出中将规则1到规则1中的规则1到规则15组合使用的逻辑,因为我没有关注为什么这15个“规则”全部归结为输出中的一条规则。如果你能做到这一点,这肯定可以用一些VBA来完成。 – 2013-04-09 14:06:03
请告诉我们您使用的规则/标准 – 2013-04-09 14:22:04
@DavidZemens,我已经添加到我的问题 - 希望现在更清楚。 – Griffin 2013-04-09 14:42:15