在动态范围中查找Alpha排名

时间:2017-07-12 15:30:23

标签: excel excel-formula

我正在开发一个基于excel的发票项目设备数据库。每个独特的项目都有自己的工作簿,但我正在尝试构建一个模板工作簿,以限制每个项目的发票中手工工作量。每台设备都有一个型号,串行和允许的地址范围。

模型 - 假设我们有三个:Grey_Box,Blue_Box和Pink_Box,对于一个示例项目,我们有三个这样的框,在我们的数据库中总共有九个框。

序列号 - 每个框(无论型号)都有唯一的序列号。

地址 - 每个型号都有一个允许的地址范围。例如,Grey_Box将在800和899之间寻址,从800开始,并为该模型类型的每个唯一框增加1。

我正在努力的是如何在其模型类型中找到每个框的字母数字等级来动态分配地址。任何给定的项目都可以有数百到数千个盒子,手工分配这些是一件苦差事,我觉得可以通过在起始地址中添加等级来轻松实现自动化。

总结一下这个例子:

  • Box名称|序列号|起始地址
  • Grey_Box | AM04 | 0800
  • Grey_Box | TI18 | 0800
  • Grey_Box | GH34 | 0800
  • Blue_Box | XJ94 | 1000
  • Blue_Box | BC01 | 1000
  • Blue_Box | JK42 | 1000
  • Pink_Box | HI38 | 2400
  • Pink_Box | CD22 | 2400
  • Pink_Box | LQ00 | 2400

我很想找到一种方法来添加一个将Rank添加到起始地址的公式。例如,AM04为800,GH34为801,TI18为802。

我发现我能够在我的表格中使用“= COUNTIF([SERIAL],”< =“& [@ SERIAL])”返回序列号的字母排名。虽然这对他们排名是跨模型,但这并不能让我在那里。我觉得我缺少一些关于excel可以做什么的知识,而这正是让我无法找到解决方案的。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

假设我正确地解释了你的问题,我认为你可能会在COUNTIFS公式之后。我注意到你使用的是表格,所以我使用了这种语法:

=COUNTIFS([Box],[@Box],[Serial],"<"&[@Serial])+[@[Starting Address]]

这导致此输出:

enter image description here

答案 1 :(得分:1)

尝试,

=COUNTIFS([Box Name], [@[Box Name]], [Serial], "<="&[@Serial])+VLOOKUP([@[Box Name]], F$4:G$6, 2, FALSE)

enter image description here