Excel 中的索引和匹配多个条件
Index and Match Multiple Criteria in Excel
我有两个 table 列相同的数据。第一个填充了实验数据:
`Treatment Species TimeofDay Temp Light X
M B AM 25 25 2
M B PM 26 50 3
M B PM 27 150 4
M C AM 25 25 5
M C AM 26 150 6
M C PM 27 500 7
M C PM 28 800 9
A B AM 25 25 2
A B PM 26 50 3
A B PM 27 150 4
A C AM 25 25 5
A C AM 26 150 6
A C PM 27 500 7
A C PM 28 800 9
在第二个 table 中,我想用第一个 table 中的值填充 "X" 列,以便在给定的行 A) 中,所有分类值都完全匹配来自 table 的那些 AND B) 温度和光照值最接近(但不完全)匹配 table 1.
中的值
例如,如果在 Table 2 中,我有:
Treatment Species TimeofDay Temp Light X
M B PM 30 200
我希望函数在 X 列中给出 4。
我熟悉在给定另一列中的匹配项的情况下为一列中的值编制索引,以及在一列中找到最接近的匹配值,但我无法将所有这些条件放在一起:
=INDEX(Table1!F:F,
MATCH(Table2!A,Table1!A:A,0))
MATCH(Table2!B,Table1!B:B,0))
MATCH(Table2!C,Table1!C:C,0))
MATCH(MIN(ABS(Table1!D:D-Table2!D)),ABS(Table1!D:D-Table2!D), 0))
MATCH(MIN(ABS(Table1!E:E-Table2!E)),ABS(Table1!E:E-Table2!E),0))
预先感谢您的帮助。
这个公式有效,输入F2:
=INDEX(Table1!F:F,MATCH(MIN(IF(A2=Table1!A:A,IF(B2 = Table1!B:B,IF(C2 = Table1!C:C,ABS((Table1!D:D+Table1!E:E)-(D2+E2)))))),IF(A2=Table1!A:A,IF(B2 = Table1!B:B,IF(C2 = Table1!C:C,ABS((Table1!D:D+Table1!E:E)-(D2+E2))))),0))
这是数组公式,退出编辑模式时必须用Ctrl-Shift-Enter确认。然后抄下来。
关于你的其他评论,如果差异相同,则优先。
我有两个 table 列相同的数据。第一个填充了实验数据:
`Treatment Species TimeofDay Temp Light X
M B AM 25 25 2
M B PM 26 50 3
M B PM 27 150 4
M C AM 25 25 5
M C AM 26 150 6
M C PM 27 500 7
M C PM 28 800 9
A B AM 25 25 2
A B PM 26 50 3
A B PM 27 150 4
A C AM 25 25 5
A C AM 26 150 6
A C PM 27 500 7
A C PM 28 800 9
在第二个 table 中,我想用第一个 table 中的值填充 "X" 列,以便在给定的行 A) 中,所有分类值都完全匹配来自 table 的那些 AND B) 温度和光照值最接近(但不完全)匹配 table 1.
中的值例如,如果在 Table 2 中,我有:
Treatment Species TimeofDay Temp Light X
M B PM 30 200
我希望函数在 X 列中给出 4。 我熟悉在给定另一列中的匹配项的情况下为一列中的值编制索引,以及在一列中找到最接近的匹配值,但我无法将所有这些条件放在一起:
=INDEX(Table1!F:F,
MATCH(Table2!A,Table1!A:A,0))
MATCH(Table2!B,Table1!B:B,0))
MATCH(Table2!C,Table1!C:C,0))
MATCH(MIN(ABS(Table1!D:D-Table2!D)),ABS(Table1!D:D-Table2!D), 0))
MATCH(MIN(ABS(Table1!E:E-Table2!E)),ABS(Table1!E:E-Table2!E),0))
预先感谢您的帮助。
这个公式有效,输入F2:
=INDEX(Table1!F:F,MATCH(MIN(IF(A2=Table1!A:A,IF(B2 = Table1!B:B,IF(C2 = Table1!C:C,ABS((Table1!D:D+Table1!E:E)-(D2+E2)))))),IF(A2=Table1!A:A,IF(B2 = Table1!B:B,IF(C2 = Table1!C:C,ABS((Table1!D:D+Table1!E:E)-(D2+E2))))),0))
这是数组公式,退出编辑模式时必须用Ctrl-Shift-Enter确认。然后抄下来。
关于你的其他评论,如果差异相同,则优先。