用EXCEL制作血统表吧!
Level 1 先尝试制作3代血统表
-使用VLOOKUP函数制作血统表-
【制作表格框架】
首先,请在EXCEL中通过“新建”准备一个新的工作簿。
在空白的工作表中,按照以下方式绘制表格边框。
【创建数据库】
接下来,创建数据库部分。
在E1到G16的单元格范围内输入以下数据。
如果需要直接复制屏幕上的内容,请选择表格范围,然后复制并粘贴到EXCEL的E1单元格位置。
表格的格式应该会保持不变并粘贴成功。
马名 | 父 | 母 |
---|---|---|
Blushing Groom | Red God | Runaway Bride |
Colorspin | High Top | Reprocolor |
Fairy Bridge | Bold Reason | Special |
High Top | Derring-Do | Camenae |
Key to the Kingdom | Bold Ruler | Key Bridge |
Northern Dancer | Nearctic | Natalma |
Noura | Key to the Kingdom | River Guide |
Red God | Nasrullah | Spring Run |
Reprocolor | Jimmy Reppin | Blue Queen |
River Guide | Drone | Blue Canoe |
Runaway Bride | Wild Risk | Aimee |
Sadler's Wells | Northern Dancer | Fairy Bridge |
Opera House | Sadler's Wells | Colorspin |
T M Opera O | Opera House | Once Wed |
Once Wed | Blushing Groom | Noura |
【在单元格中输入公式以显示父马】
当空的表格和数据库准备好后,在A1单元格中输入“T M Opera O”。
这是输入你想要制作血统表的马名的单元格。
接下来,在A4单元格中输入=VLOOKUP(A1,E2:G16,2,0)
。
这是显示血统表中“父马”的单元格。
单元格的值是不是显示为“Opera House”了呢?
【VLOOKUP函数】
VLOOKUP函数是一个在指定范围内通过左端列的值进行搜索,并提取符合条件的单元格值的函数。
在=VLOOKUP(A1, E2:G16, 2, 0)当中
- A1 是作为搜索键的值。这里以A1单元格中输入的值作为键,在指定范围内的左端列进行搜索。
- E2:G16 是搜索值的单元格范围。
- 2 是指示从指定范围的左端列开始,提取第2列的值。这里指示提取“父马”的名字。
- 0 是指定当键值在范围的左端列中不存在时的处理方式。
- 指定“0”或“FALSE”时,如果键值不存在,则返回错误。
- 指定“1”或“TRUE”时,或省略时,返回小于键值的最大值。
试着将A1单元格的值改为“Stay Gold”,并将A4单元格的公式改为:
=VLOOKUP(A1,E2:G16,2,1)
单元格的值会如何变化?
实际上,“Stay Gold”并未在数据库中注册。本应显示错误,但A4单元格的值却显示为“Sadler's Wells”。这是因为未找到键值,因此搜索了小于该值的最大值,即“Opera House”,并显示了其父马“Sadler's Wells”。为了避免自动生成错误的血统表,请务必在最后一个参数中使用“0”或“FALSE”。
将A4单元格的公式改回:
=VLOOKUP(A1,E2:G16,2,0)
这次会显示“#N/A”,表示未找到对应的值。
【在单元格中输入公式以显示母马】
将A1单元格的值改回“T M Opera O”,然后在A8单元格中输入:
=VLOOKUP(A1,E2:G16,3,0)
这个公式与A4单元格的公式几乎相同,只是第三个参数从“2”改为“3”。
这次我们希望显示“母马”,因此在数据库中指定了包含“母马”名字的第3列。
A8单元格的值是不是显示为“Once Wed”了呢?
【在单元格中输入公式以显示父马的父马】
血统表的基本原理是:找到某匹马的父马和母马并显示,然后进一步找到父马的父马和母马并显示,母马的父马和母马并显示,依此类推。
那么,如何在B3单元格中显示“Opera House”的父马呢?
这次的键值是A4单元格中的值。只需输入以下公式即可:
=VLOOKUP(A4,E2:G16,2,0)
【为范围命名】
每次输入“E2:G16”来指定搜索范围很麻烦。可以为固定范围命名(范围名),并使用该名称。
- 选择E2到G16的范围。
- 从菜单中选择 插入→名称→定义,为选定的范围命名为“HD”。
(或点击菜单栏左下角的“名称框”,输入“HD”)
“HD”是“HORSE DATA”的缩写。
范围名可以是“HorseData”、“马血统”或任何你喜欢的名称,但建议使用简短且易于理解的名称。
命名后,将B3单元格公式中的“E2:G16”改为“HD”(或你命名的名称),并确认搜索是否正确。
注意:输入范围名时,不要添加“"”(双引号)等符号。
“Opera House”的父马“Sadler's Wells”是否正确显示了呢?
同样地,将A4和A8单元格的公式中的范围名也进行修改。
【在单元格中输入公式以显示母马】
将A1单元格的值改回“T M Opera O”,然后在A8单元格中输入:
=VLOOKUP(A1,E2:G16,3,0)
这个公式与A4单元格的公式几乎相同,只是第三个参数从“2”改为“3”。
这次我们希望显示“母马”,因此在数据库中指定了包含“母马”名字的第3列。
A8单元格的值是不是显示为“Once Wed”了呢?
【完成血统表】
接下来,请在B5单元格中显示“Opera House”的母亲,在B7单元格中显示“Once Wed”的父亲,在B9单元格中显示“Once Wed”的母亲。
如果做到这一步,剩下的就是重复同样的操作。在C3到C10单元格中也输入VLOOKUP函数的公式,完成3代血统表。
按照下表输入后,应该能正确显示血统表。
A | B | C | |
---|---|---|---|
1 | (在这里输入马名) | ||
2 | |||
3 | =VLOOKUP(A4,HD,2,0) | =VLOOKUP(B3,HD,2,0) | |
4 | =VLOOKUP(A1,HD,2,0) | =VLOOKUP(B3,HD,3,0) | |
5 | =VLOOKUP(A4,HD,3,0) | =VLOOKUP(B5,HD,2,0) | |
6 | =VLOOKUP(B5,HD,3,0) | ||
7 | =VLOOKUP(A8,HD,2,0) | =VLOOKUP(B7,HD,2,0) | |
8 | =VLOOKUP(A1,HD,3,0) | =VLOOKUP(B7,HD,3,0) | |
9 | =VLOOKUP(A8,HD,3,0) | =VLOOKUP(B9,HD,2,0) | |
10 | =VLOOKUP(B9,HD,3,0) |
表格完成后,将显示“T M Opera O”的血统表。
A | B | C | |
---|---|---|---|
1 | T M Opera O | ||
2 | |||
3 | Opera House | Sadler's Wells | Northern Dancer |
4 | Fairy Bridge | ||
5 | Colorspin | High Top | |
6 | Reprocolor | ||
7 | Once Wed | Blushing Groom | Red God |
8 | Runaway Bride | ||
9 | Noura | Key to the Kingdom | |
10 | River Guide |
【使用血统表】
让我们确认一下这个血统表是否也能正确显示“T M Opera O”以外的马匹。
在A1单元格中输入“Opera House”。血统表会如何变化?
如果显示如下血统表,那就大功告成了。
只要数据库中注册了马匹的数据,就可以显示任何马的血统表。
A | B | C | |
---|---|---|---|
1 | Opera House | ||
2 | |||
3 | Sadler's Wells | Northern Dancer | Nearctic |
4 | Natalma | ||
5 | Fairy Bridge | Bold Reason | |
6 | Special | ||
7 | Colorspin | High Top | Derring-Do |
8 | Camenae | ||
9 | Reprocolor | Jimmy Reppin | |
10 | Blue Queen |
【挑战Level 2!】
在A1单元格中输入“Colorspin”试试。
A | B | C | |
---|---|---|---|
1 | Colorspin | ||
2 | |||
3 | High Top | Derring-Do | #N/A |
4 | #N/A | ||
5 | Camenae | #N/A | |
6 | #N/A | ||
7 | Reprocolor | Jimmy Reppin | #N/A |
8 | #N/A | ||
9 | Blue Queen | #N/A | |
10 | #N/A |
虽然前2代显示正确,但第3代的列显示为“#N/A”。
这是因为第2代的马(如Derring-Do和Camenae)的数据未注册,因此无法显示搜索值。
由于数据不存在,这是无法避免的,但比起表中显示错误,什么都不显示会更美观。
在Level 2中,我们将介绍如何使用IF函数避免显示此类错误。
此外,在Level 3中,我们不仅会显示马的名字,还会显示性别、毛色、出生年份等信息,制作更专业的血统表。
Level 1中制作的血统表在Level 2中也会用到,请为文件命名并保存。