以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]专业后台分组统计问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=69071)

--  作者:morlay2013
--  发布时间:2015/5/29 17:40:00
--  [求助]专业后台分组统计问题
我在看官方视频《数据统计》里面的“0057-专业后台分组统计”中“不按自然月进行统计,即只要是大于或等于26号的就当作下一个月来统计中”讲到如果不用表达式列则需要先手工添加"统计日期"列,然后通过代码判断日期这列某个单元格的内容大于26号就当作下一个月来处理。如果通过表达式来处理的话只需要将当前日期加上6就行了(即:b.groups.AddExp("年",Year(DateAdd(\'d\',6,日期))")这句话中为什么要将当前日期加上6?这个6是怎么来的?如果这样的话,比如有个日期为2015年5月21日,如果加上6的话,那么就变成27日,这样岂不是会把5月21日当作下一个月来处理?)
--  作者:大红袍
--  发布时间:2015/5/29 17:47:00
--  

 你先看一下这里吧

 

http://foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=68303&skin=0

 


--  作者:morlay2013
--  发布时间:2015/5/31 12:14:00
--  
首先感谢你的回答,我仔细看了一下例子,它这个例子我能很好理解,因为它在里面作了判断的如下所示:
b.Groups.AddExp("年","Year(iif(Day(日期)> 25,DateAdd(\'d\',6,日期),日期))")用了iif或是when case
但在视频中它未作判断而直接加6,比如2月份最多只有28天,如果当时日期是24号,那么它加上6天就是3月2号,这样不就不对了?

--  作者:morlay2013
--  发布时间:2015/5/31 12:15:00
--  
首先感谢你的回答,我仔细看了一下例子,它这个例子我能很好理解,因为它在里面作了判断的如下所示:
b.Groups.AddExp("年","Year(iif(Day(日期)> 25,DateAdd(\'d\',6,日期),日期))")用了iif或是when case
但在视频中它未作判断而直接加6,比如2月份最多只有28天,如果当时日期是24号,那么它加上6天就是3月2号,这样不就不对了?


--  作者:大红袍
--  发布时间:2015/5/31 14:34:00
--  

 嗯嗯,必须判断一下才行。


--  作者:morlay2013
--  发布时间:2015/6/1 17:16:00
--  
可是视频为什么是对的呢?
--  作者:大红袍
--  发布时间:2015/6/1 17:20:00
--  

 我没完整看完视频,不好说。

 

 b.groups.AddExp("年",Year(DateAdd(\'d\',6,日期)) 这句的意思,是获取年份,所以这样写也是正确的,只有 12月25号以后的情况,才计算入下一年去。