我正在进行一批实验,并在表格中跟踪以下数量:
- 实验对象
- 实验当天
- 实验背景
- 当天预期结果
- 当天实际结果
- 当天相对误差
这些数量位于一个表中,该表的列标记为 SUBJECT、DAY、CONTEXT、EXPECTED、ACTUAL、RELATIVE。我想要制作一个用于监控实验和结果的表,其中对于所有 SUBJECT * DAY 组合,显示导致最小相对 ERROR 的 CONTEXT,以及相应的 EXPECTED、ACTUAL 和 RELATIVE。
似乎可以使用 INDEX、VLOOKUP、MATCH 和 MIN 的组合来实现这一点,但我无法使用结构化引用,这对我来说很重要,因为表格的结构发生了很大的变化。
作为示例数据
| SUBJECT | DAY | CONTEXT | EXPECTED | ACTUAL | RELATIVE |
| A | 1 | x | 42 | 0 | 100% |
| A | 1 | y | 42 | 42 | 0% |
| B | 1 | x | 21 | 10 | 50% |
| B | 1 | x | 21 | 0 | 100% |
| A | 2 | x | 3 | 1 | 66% |
我的监控表中应该有以下内容:
| A | 1 | y | 42 | 42 | 0% |
| B | 1 | x | 21 | 10 | 50% |
附注一下,我实际上在数据表中有几个指标,并且想分别监控它们每一个。
编辑。正如评论中所建议的,我尝试构建一个数据透视表。我能够生成一个数据透视表,其中行标有 SUBJECT,列标有 DAYS,其中显示最佳 RELATIVE 误差。这与上面的监控表仍然相差甚远。
答案1
如果您想在 Excel 中执行此操作,这并不难,但使用一些辅助列会很有帮助。
我将添加一个唯一的行标识符,并且可能添加另一个列来连接您的主题和日期=B3 & C3
。这将使您在 Excel 中创建唯一值更加容易。
vlookup
在结果表中,您首先要找到所需的实验 ID,然后使用或index
+填写列match
。
实验 ID 的公式是使用 ctrl+shift+enter 输入的数组公式,它会在相对列中查找与主题和日期相匹配的最小值。如果有两个值相同,它会选择同一个
公式是(按 ctrl+shift+enter 输入)在单元格 A10 中:
=INDEX($A$3:$A$7,MATCH(MIN(IF($B$3:$B$7=B10,IF($C$3:$C$7=C10,$G$3:$G$7,9999),9999)),IF($B$3:$B$7=B10,IF($C$3:$C$7=C10,$G$3:$G$7,9999),9999),0))
对于其他列只需使用查找(或者我更喜欢索引匹配)
单元格 D10 的公式为=INDEX(D$3:D$7,MATCH($A10,$A$3:$A$7,0))
。此公式可以复制到所有其他单元格中,同样有效。
戈登