我正在尝试在Excel中完成一个相当简单的任务,但是没有得到想要的结果。我有一个简单的时间表,通过填写一张简单的表格,我可以将一组教练分配给一系列比赛。这是缩小版本:
Match | John | Pete | Chris |
-------|------|------|-------|-------
1 | X | | | John
2 | | X | | Pete
3 | A | | X | Chris
4 | X | | A | Chris (!)
5 | | X | A | Pete
传奇:X:将执教; A:可用。
我使用该表注册可用性,然后在每行中将A更改为X,以选择实际指导比赛的人。
为进行概述,我决定添加一列,其中将显示所选教练。我使用以下公式:=LOOKUP("X"; B2:D2; B$1:D$1)
用于第2行,并将其复制到其他行,以便每行的行号与放置公式的行相对应。
令我惊讶的是,第4场比赛分配给了Chris,而John拥有X,而Chris只有A。
当我阅读Microsoft's documentation on LOOKUP时,我注意到了一些事情:
- LOOKUP具有矢量形式和数组形式。 microsoft建议将HLOOKUP用于数组形式,但我使用矢量形式。我不认为HLOOKUP对我有用,因为它只在指定数组的第一行中查找值,而我的第一行包含要返回的值。
- 它显示为:“仅包含一行或一列的范围。” ,还包括”重要提示:lookup_vector中的值必须按升序放置:..., -2,-1、0、1、2,...,AZ,FALSE,TRUE;否则,LOOKUP可能不会返回正确的值。大写和小写文本是等效的。“
我认为2.是导致问题的原因。我不确定如何对A2:A4之类的范围参数进行排序。 microsoft记录了SORT function,但它是beta。另外,我认为对搜索行进行排序将使匹配变得混乱。
我找到的解决方法是将代码更改为A:分配和B:备份,其中选择A和B为按字母顺序递增。如果我更改公式以使用查找值“ A”,则会得到以下信息:
Match | John | Pete | Chris |
-------|------|------|-------|-------
1 | A | | | John
2 | | A | | Pete
3 | B | | A | Chris
4 | A | | B | John
5 | | A | B | Pete
这是我想要的结果。
有人可以阐明这种完全违反直觉的行为和/或描述实现此目的的替代方法吗?
注意: