在 Microsoft Excel 中,如何根据同一张表的另一列中的值计算范围(列的一部分),以数组形式返回结果以供其他函数进一步处理?
在 SQL 中,我的意思是“SELECT field1 FROM table WHERE field2=value”。
选定的结果将(两次)馈送到 FREQUENCY(),以计算“field1”中不同条目的数量。那就是:给定一个像这样的现有表:
Box Date
1 07/01/12
13 07/01/12
13 07/01/12
27 07/18/12
13 07/18/12
55 07/18/12
我想生成这样的结果表:
Boxes Date
2 07/01/12
3 07/18/12
请注意,“13”仅在第一个日期计算一次(“distinct”),但在第二个日期仍会再次计算。
我已经有一个表达式可以为整个表格做正确的事情,
=SUM(N(FREQUENCY(Box,Box)>0))
其中“Box”是第一个表的命名范围,由整个 Box 列组成。(使用与数据相同的范围/数组/列表和 FREQUENCY 的 bin 是 Excel 帮助中实际包含的一个非常微妙的技巧,但是 - 唉! - 没有得到充分的解释。)
但我想要(几个)子集,每个日期一个。我想扩展我的 "SUM(N(FREQUENCY..."
SELECT count(DISTINCT t1.Box), t2.Date
FROM `t1` JOIN `t2` ON (Date)
GROUP BY Date
我什至可以建立一个有趣值的数据透视表(它让我在其单元格中计数),然后使用一个并行的、日期索引的列
=COUNTIF(…)
将每一行的计数减少到该日期的一个唯一计数。但这需要我更新数据透视表以注意基表中的新数据,然后拖动扩展答案列以包含新日期(或遭受丑陋的值错误标记)。因此,更自动、更少繁琐的手动操作会很不错。