首页 > 解决方案 > 计算 googlesheets 中的 VIP 等级

问题描述

我必须解决一个问题,即根据用户每月的表现为用户分配正确的 VIP 级别。如果达到分数,则将用户移动到特定级别。我用这个filter功能很容易做到这一点。现在,要保持上个月的状态,用户必须至少达到一定的积分。如果他不这样做,他将被降级到以前的级别。

例子:

VIP等级如下:

+---------+----------+------------+------------+-------------------+
| level # | Level    | Min Points | Max Points | Keep level Points |
+---------+----------+------------+------------+-------------------+
| 1       | BRONZE   | 0          | 1875       | 0                 |
+---------+----------+------------+------------+-------------------+
| 2       | SILVER   | 1875       | 9375       | 1875              |
+---------+----------+------------+------------+-------------------+
| 3       | GOLD     | 9375       | 37500      | 9375              |
+---------+----------+------------+------------+-------------------+
| 4       | PLATINUM | 37500      | 93750      | 37500             |
+---------+----------+------------+------------+-------------------+
| 5       | DIAMOND  | 93750      | 187500     | 93750             |
+---------+----------+------------+------------+-------------------+
| 6       | ASTEROID | 187500     | 562500     | 187500            |
+---------+----------+------------+------------+-------------------+

例如,如果用户在一个月内产生 40000 点积分,他将被提升为 PLATINUM。这也意味着下个月,如果他没有达到上级(钻石或小行星),他需要至少产生 37500 点才能保持他的水平,否则他将被降级为 GOLD。

以一个特定的用户为例,我可以构建一个模型来找到每个月的正确级别,但使用几行来迭代这些月。(谷歌表在这里

可以用这个结果来概括:

+-------+---------+---------+---------+---------+---------+---------+
| Month | 07-2019 | 08-2019 | 09-2019 | 10-2019 | 11-2019 | 12-2019 |
+-------+---------+---------+---------+---------+---------+---------+
| UserX | 1765    | 15408   | 1383    | 1499    | 9379    | 4161    |
+-------+---------+---------+---------+---------+---------+---------+
| Level | BRONZE  | GOLD    | SILVER  | BRONZE  | GOLD    | SILVER  |
+-------+---------+---------+---------+---------+---------+---------+

现在,有数百名用户,我想找到公式来计算每个月的正确级别,而无需使用多行(每个用户仅 1 行)

任何人都可以帮助找出解决方案吗?

标签: google-sheetsgoogle-sheets-formula

解决方案


粘贴到您需要的位置并向右拖动:

=ARRAYFORMULA(IF($A4:$A9="",,IFNA(VLOOKUP(B4:B9, 
 {0,      "BRONZE"; 
  1875,   "SILVER";
  9375,   "GOLD";
  37500,  "PLATINUM";
  93750,  "DIAMOND";
  187500, "ASTEROID"}, 2, 1))))

0

电子表格演示


更新:

在 B13 和 C13 中使用上述公式降低 1 级,粘贴此公式并向右拖动:

=ARRAYFORMULA(IFNA(VLOOKUP(IF(IF($A4:$A9="",,IFNA(VLOOKUP(C4:C9, 
 {0, 1; 1875, 2; 9375, 3; 37500, 4; 93750, 5; 187500, 6}, 2, 1)))+1< IF($A4:$A9="",,IFNA(VLOOKUP(B4:B9, 
 {0, 1; 1875, 2; 9375, 3; 37500, 4; 93750, 5; 187500, 6}, 2, 1))),   IF($A4:$A9="",,IFNA(VLOOKUP(B4:B9, 
 {0, 1; 1875, 2; 9375, 3; 37500, 4; 93750, 5; 187500, 6}, 2, 1)))-1, IF($A4:$A9="",,IFNA(VLOOKUP(C4:C9, 
 {0, 1; 1875, 2; 9375, 3; 37500, 4; 93750, 5; 187500, 6}, 2, 1)))), 
 {1, "BRONZE"; 
  2, "SILVER";
  3, "GOLD";
  4, "PLATINUM";
  5, "DIAMOND";
  6, "ASTEROID"}, 2, 0)))

0

电子表格演示


推荐阅读