Google sheets 为多个日期计算值的有效方法?

Google sheets 为多个日期计算值的有效方法?,google-sheets,spreadsheet,google-docs,Google Sheets,Spreadsheet,Google Docs,现在我正在谷歌电子表格中计算多个日期的总数,为了计算一周的总数,我取开始日期,然后对那天做一个Filter(),整个星期加1 例如: =SUM(IFERROR(FILTER('HelpScout Import'!C:C, 'HelpScout Import'!$B:$B = $A3, 'HelpScout Import'!$A:$A = $B$1),0), IFERROR(FILTER('HelpScout Import'!C:C, 'HelpScout Import'!$B:$B = $A3,

现在我正在谷歌电子表格中计算多个日期的总数,为了计算一周的总数,我取开始日期,然后对那天做一个
Filter()
,整个星期加1

例如:

=SUM(IFERROR(FILTER('HelpScout Import'!C:C, 'HelpScout Import'!$B:$B = $A3, 'HelpScout Import'!$A:$A = $B$1),0), IFERROR(FILTER('HelpScout Import'!C:C, 'HelpScout Import'!$B:$B = $A3, 'HelpScout Import'!$A:$A = TO_DATE(N($B$1)+1)), 0), IFERROR(FILTER('HelpScout Import'!C:C, 'HelpScout Import'!$B:$B = $A3, 'HelpScout Import'!$A:$A = TO_DATE(N($B$1)+2)), 0), IFERROR(FILTER('HelpScout Import'!C:C, 'HelpScout Import'!$B:$B = $A3, 'HelpScout Import'!$A:$A = TO_DATE(N($B$1)+3)), 0), IFERROR(FILTER('HelpScout Import'!C:C, 'HelpScout Import'!$B:$B = $A3, 'HelpScout Import'!$A:$A = TO_DATE(N($B$1)+4)), 0), IFERROR(FILTER('HelpScout Import'!C:C, 'HelpScout Import'!$B:$B = $A3, 'HelpScout Import'!$A:$A = TO_DATE(N($B$1)+5)), 0), IFERROR(FILTER('HelpScout Import'!C:C, 'HelpScout Import'!$B:$B = $A3, 'HelpScout Import'!$A:$A = TO_DATE(N($B$1)+6)), 0))
它由多个部分组成,如下所示:

IFERROR(FILTER('HelpScout Import'!C:C, 'HelpScout Import'!$B:$B = $A3, 'HelpScout Import'!$A:$A = TO_DATE(N($B$1)+1)), 0)
这只是按开始日+1过滤数据<代码>HelpScout导入'$A:$A是日期列
TO_DATE(N($B$1)+1))
获取日期,将其转换为数字,加上1,然后将其转换回日期

如果我想编译整整一个月的数据,这种类型的函数将是非常不充分的。有30到31个像上面这样的部分是不可管理的

有更好的方法吗

编辑:使用
DSUM()
更简单的方法:

然而,这仍然意味着我每天都需要一个
(N(H8)+1)
。正在寻找在单个单元格函数中创建日期数组的方法

Edit2:制作了一个返回日期数组的应用程序脚本

function GetNextXDays(startDay, days)
{
  var inputDate = new Date(startDay);
  var dates = [];
  for(i =0; i < days; i++)
  {
    var newDate = new Date(startDay);
    newDate.setDate(newDate.getDate() + i);
    dates.push(newDate);
  }
  return dates;
}
函数GetNextXDays(startDay,days)
{
var inputDate=新日期(startDay);
var日期=[];
对于(i=0;i

这将返回到目前为止我需要的日期。

一种解决方案是使用
DSUM
和越来越大的运算符来定义范围

=DSUM('HelpScout Import'!A:H, "Total Conversations", {{"Date"; JOIN("", ">=", TO_DATE(H8))}, {"Date"; JOIN("", "<=", TO_DATE(H8 + 30))}})

谢谢你的回复。我设法得到了一系列要返回的日期。然而,我似乎无法根据姓名和日期来
DSUM()
。下面是我的标准的图片:我的函数:
=DSUM('HelpScout Import'!a:H,“Total Conversations”,J17:K18)
J17:K18指的是该图片的前两行。它只会返回
0
Scratch,我猜出来了。我需要有多个“或”类似的条件。现在看起来是:{{“Name”;A15},{“Date”;“>=”&B1},{“Date”;“我在您的代码中发现了一个错误,并为我的答案添加了一个修复程序。
=DSUM('HelpScout Import'!A:H, "Total Conversations", {{"Date"; JOIN("", ">=", TO_DATE(H8))}, {"Date"; JOIN("", "<=", TO_DATE(H8 + 30))}})
function GetNextXDays(startDay, days)
{
  var dates = [];
  for(var day = startDay; day < startDay + days; day++)
  {
    var newDate = new Date((day - 25569) * 86400000);
    dates.push(newDate);
  }
  return dates;
}