我搜索了又搜索,并尝试了每一个答案,但似乎没有一个适合我的情况。
使用 Excel 2003。
我有一张表,其中包含 [DATE]、[SITE]、[INCIDENT] 列。
我将使用类似于 SQL 的语言进行解释,因为它简洁明了。我需要对该表中的数据运行以下 SELECT 语句
从表 1 中选择 [日期],其中 [站点] = "站点 1" 且 [事件] = "死亡"
从该列表(多个值)中,我需要显示最新的 [DATE] 值,即死亡发生的最后日期。
我尝试过以下公式:
{=MAX(IF('Spreadsheet1'!D3:D1000="Death", IF('Spreadsheet1'!E3:E1000="Site1", 'Spreadsheet1'!A3:A1000, 0), 0))}
但这似乎不能正常工作。
我们绝对欢迎任何帮助。
答案1
尝试
=MAX(A3:A1000 * (D3:D1000="Death") * (E3:E1000="Site1"))
这不会将WHERE
子句视为条件,而是将其视为要最大化的表达式的一部分。TRUE 为 1,FALSE 为 0,因此价值×布尔值1×布尔值2是价值如果两个布尔值都为 TRUE,则为 0。
当然,这是一个数组公式;但我知道你已经理解这些了。
答案2
确保您的工作表名称与公式中使用的名称匹配(我认为是匹配的),并且您使用 Control-Shift-Enter 组合键输入公式,因为它是一个数组公式。这个公式对我来说很管用。