我想获得一个每月平均值,该平均值仅计算包含交易的月份。这就像将所有交易金额相加,然后除以使用的月数一样简单。
我找不到一个本机Excel公式可以像这样计算月份,并且尝试使用表或命名范围对基于ROW()函数的条件求和不起作用。它只会在尝试按年(或任何其他条件)限制计数时返回零。
该公式如下所示:
={SUM(IF(MATCH(MONTH(DateRange),MONTH(DateRange),0)=(ROW(DateRange)-MIN(ROW(DateRange))+1),1,0))}
顺便说一句,这是一个数组公式。它基本上会查看您所在的行是否与排序列表中引用月份的第一行相同。这是我尝试过的每种方法的一个问题。范围需要按日期排序。
当尝试使用 AND() 或布尔表达式将命名范围“DateRange”限制为仅指定年份时,会出现更大的问题。
因此,问题仍然存在,如何在一个公式中指定特定的标准,并根据这些标准计算一个范围内的月数?
我想到的解决方案是下面这个使用SUMPRODUCT()的非数组公式:
=SUMPRODUCT((MONTH('Transaction Log'!$A$3:INDEX('Transaction Log'!$A:$A, COUNTA('Transaction Log'!$A:$A)+1))<>MONTH(DateRange))*(YEAR(DateRange)=2014))
技巧是将日期范围与类似的范围进行比较,只需移动一个单元格即可。例如,您将比较单元格1:5和单元格2:6。具体来说,您要查找连续日期不在同一个月的地方,并对它们进行计数。
不幸的是,这个方法仍然是以有一个排序范围为前提的。但通过这种方式,您可以指定任意数量的标准来限制数据的范围。我以前估算每月平均成本的方法涉及一个简单的比率,在某些情况下,这个比率大大超过了每月成本。
问题 你的代码需要在当前月份中循环每一天,想找到一个计算这个日期范围的高效方法。 解决方案 在这样的日期上循环并需要事先构造一个包含所有日期的列表。 你可以先计算出开始日期和结束日期, 然后在你步进的时候使用 datetime.timedelta 对象递增这个日期变量即可。 下面是一个接受任意 datetime 对象并返回一个由当前月份开始日和下个月开始日组成的元组对象。 from datetim
问题内容: 我的数据库中有以下一组匹配日期的日期(dd / MM / yyyy): 事件具有开始和结束日期(时间无关紧要),并且endDate为NULL表示事件仍在进行中。 我想确定的是两个任意日期之间的日期范围,其中a)没有事件,b)事件重叠。 因此,对于输入日期范围01/04/2009-30/06/2009,我希望得到以下结果: 注意,作为结果,两个相邻的重叠范围是可以接受的。 谁能用SQL算
问题内容: 这个问题已经有了SQL的答案,并且我能够使用R在R中实现该解决方案。但是,我一直找不到使用来实现它的方法。 问题是要计算滚动日期范围内一列的不同值,例如(如果直接从链接的问题中引用)数据是否如下所示: 如果我们使用3天的日期范围,则结果集将类似于以下内容 这是使用R在R中创建相同数据的代码: 在这方面的任何帮助将不胜感激。谢谢! 编辑1: 这是一个玩具问题,我想将其应用于更大的数据集,
问题内容: 我有一组电子邮件地址和将这些电子邮件地址添加到表中的日期的数据集。电子邮件地址在不同的日期可以有多个条目。例如,如果我有下面的数据集。我希望获得上述日期和3天前之间不同电子邮件的日期和计数。 如果我们使用3的日期周期,结果集将看起来像这样 我可以使用下面的查询来获得日期范围的不同计数,但希望按天获得一个范围的计数,因此我不必手动更新数百个日期的范围。 感谢您的帮助。 问题答案: 测试用
问题内容: 我正在尝试编写一个MySQL查询,以获取给定日期之间所有月份的每月平均值。我的想法是这样的: 查询,类似 您看到,在2009年4月没有输入任何值,但是我希望它在输出中显示为0、0值。关于如何实现这一目标的任何想法?可以在MySQL中完成吗? 问题答案: 我同意Lieven的回答,请创建一个表,其中包含您可能需要的所有月份,并使用该表将“ LEFT JOIN”到结果表。请记住,这是一个很
问题内容: 我的MySQL表包含以下列:datetime,price_paid。我正在尝试计算一周中每天两次(两次约会之间)的平均销售额。这意味着我需要在startDate和endDate日期之间选择销售总和,并按工作日分组,然后将其除以该范围内每个工作日发生的次数。 我得到了第一部分: 我没有的是缺少的价值:我应该除以的数量-每天出现在该范围内的次数。我尝试了几种解决方案,但无济于事。 有人可以