查找或索引匹配列表 between/after 字符串
Lookup or index-match list between/after string
我有一个自动生成的信息列表,其中包含 3 种不同动物的名称和体重。 "Cat"
、"Dog"
和 "Whale"
。如果给定名称和动物类型,我需要一个 vlookup 或索引匹配公式 return 给我相应的重量,如果不匹配则 return 错误。
我找到了在值(即数字)之间查找的解决方案,但似乎无法使其适用于字符串值。
输入:
A B
1 Cat Weight
2 Bob 1.5
3 Tommy 2.5
4 Peter 3.5
5 Adam 4.5
6 Mary 5.5
7 Dog
8 Bob 14
9 Adam 16
10 Peter 15
11 Tommy 20
12 Whale
13 Peter 150
14 Adam 188
15 Jack 164
输出:
Animal Cat
Name Tommy
Weight 2.5
Animal Dog
Name Tommy
Weight 20
Animal Whale
Name Bob
Weight Error
按照下图列出结果,在 G6 中使用此标准公式并复制到 G10 和 G14。
=IFERROR(INDEX(B:B, MATCH(G5, INDEX(A:A, MATCH(G4, A:A, 0)):INDEX(A:A, AGGREGATE(15, 6, ROW(:9)/((ROW(:9)>MATCH(G4, A:A, 0))*NOT(LEN(B:B9))), 1)), 0)+MATCH(G4, A:A, 0)-1), "error")
我有一个自动生成的信息列表,其中包含 3 种不同动物的名称和体重。 "Cat"
、"Dog"
和 "Whale"
。如果给定名称和动物类型,我需要一个 vlookup 或索引匹配公式 return 给我相应的重量,如果不匹配则 return 错误。
我找到了在值(即数字)之间查找的解决方案,但似乎无法使其适用于字符串值。
输入:
A B
1 Cat Weight
2 Bob 1.5
3 Tommy 2.5
4 Peter 3.5
5 Adam 4.5
6 Mary 5.5
7 Dog
8 Bob 14
9 Adam 16
10 Peter 15
11 Tommy 20
12 Whale
13 Peter 150
14 Adam 188
15 Jack 164
输出:
Animal Cat
Name Tommy
Weight 2.5
Animal Dog
Name Tommy
Weight 20
Animal Whale
Name Bob
Weight Error
按照下图列出结果,在 G6 中使用此标准公式并复制到 G10 和 G14。
=IFERROR(INDEX(B:B, MATCH(G5, INDEX(A:A, MATCH(G4, A:A, 0)):INDEX(A:A, AGGREGATE(15, 6, ROW(:9)/((ROW(:9)>MATCH(G4, A:A, 0))*NOT(LEN(B:B9))), 1)), 0)+MATCH(G4, A:A, 0)-1), "error")