关于索引编制:Excel库存公式

Excel Formula for Inventory

我是excel公式的新手,所以我不知道所有功能。 我正在尝试使用Vlookup或类似的公式为我的库存excel工作表创建公式。

我应该能够输入序列号(可能只有新版本),它会在表格中搜索到。

标头

1
Date | Serial # (new) | Model (new) | Serial # (old) | Model (old) | Department | Assign | Building | Office | Deploy | Transfer | Status | Note |

1
Mar-14 | CK9UZA2 | 7060 | 9XUUA56 | 9030 AIO | Finance | Bell Thompson | Sky Hall | Sky 420 | Yes | No | Completed | Added to the Inventory list

结果

  • 新序列号(参考单元):CK9UZA2
  • 日期:14年3月
  • 部门:财务
  • 建筑:天空厅
  • 办公室:Sky 420
  • 分配给:汤普森
  • 旧序列号:9XUUA56
  • 旧型号:9030 AIO
  • 部署:是
  • 转移:否
  • 状态:已完成
  • 注意:已添加到库存清单

任何帮助都会有所帮助,特别是如果有人可以为我分解以便将来参考


为了将来参考,可以通过几种方式来查找值(例如:VLOOKUPHLOOKUP),但是可以使用INDEXMATCH进行非常强大的组合,至少与其他功能一样快最好快得多。

INDEX

INDEX函数功能从表或范围内返回一个值或对该值的引用,并具有以下参数:

  • 所需的单元格(矩阵)数组
  • 我们要返回的值的行的索引号
  • 我们要返回其值是可选的列的索引号

因此语法如下:=INDEX(RangeOfCells,RowIndex,[ColumnIndex])

MATCH

MATCH函数在一个单元格范围内搜索指定的项目,然后返回该项目在该范围内的相对位置。它具有以下参数:

  • 所需的查询值
  • 所需的单元格(矩阵)查找数组
  • 匹配类型(-1,0,1)是可选的(如果省略则自动输入1)

因此语法如下:=MATCH(LookupValue,LookupArray,[MatchType])

INDEX + MATCH

让我们想象一个Sheet1中的简单数据集,如下所示:

1
2
3
4
5
6
7
| Header1 | Header2 | Header3 | Header4 |
|---------|---------|---------|---------|
| ID1     | A       | Val1    | Month1  |
| ID2     | B       | Val2    | Month2  |
| ID3     | C       | Val3    | Month3  |
| ID4     | D       | Val4    | Month4  |
| ID5     | E       | Val5    | Month5  |

和以下设置来搜索Sheet2中的值:

1
2
3
| Header1 | Header2 | Header3 | Header4 |
|---------|---------|---------|---------|
| ID3     |         |         |         |

现在,如果您对Header2Header4的值感兴趣,可以在Header1下查找特定值,则可以在B2中应用以下技术并向右拖动。

1
=INDEX(Sheet1!$B:$D,MATCH($A2,Sheet1!$A:$A,0),COLUMN(A1))

结果将如下所示:

1
2
3
| Header1 | Header2 | Header3 | Header4 |
|---------|---------|---------|---------|
| ID3     | C       | Val3    | Month3  |

如果考虑以上关于INDEXMATCH的内容,您会发现我给了INDEX它是必需的单元格数组(第一个参数),使用了MATCH返回行索引号(第二个参数),并具有利用COLUMN函数以及相对单元格引用返回列索引号(第3个参数)。

已为MATCH函数提供了一个查找值(第一个参数),一个查找数组(第二个参数),并且我使用了匹配类型0,该值告诉该功能寻找精确匹配。

VLOOKUP

在这种特定情况下,可以使用VLOOKUP函数。但我将尝试阐明为什么我更喜欢INDEX + MATCH组合:

  • VLOOKUP给您几乎没有灵活性,因为查找值必须位于查找矩阵的最左列中,而INDEX提供给您选择通过第三个参数返回任何列的选项。
  • 如前所述,虽然VLOOKUP是更流行的选项,但是INDEX + MATCH是更快的选项。如果您追求速度,请使用此功能!

进一步说明:

虽然这只是如何使用INDEX + MATCH组合的简单细分,但还有一些需要考虑的事项:

  • 在上面的示例中,我使用了绝对,半绝对和相对单元格引用(请注意与$符号的区别)。利用此技术可以将公式拖动到右侧,左侧,底部或顶部。
  • 设置表格而不是矩阵。您可以引用该表中的列而不是完整列。与一列中所有可能的行相比,仅搜索几行总是更快(AFAIK)!
  • 当您变得更高级时,您会发现INDEXMATCH会以多种方式更安全地出现在生命中:)
  • 在寻找完全匹配项时,MATCH可能会在找不到查找值时返回错误。当您看到任何#N/A错误时,要考虑这一点。解决方法是公式中的ISNAIFERROR函数。

希望这可以帮助您入门!查看我包含的链接,以获取更多更深入的信息。