日历表使用 同第一个阶段一样,特别附加一个小章节的目的是想把没有完善的且重要的知识补全。本节有三个知识点,日历表排序,在PowerQuery中创建日历表,定制日历表的使用。 3 定制版日历表 上一节我们提到日历表分为两种:标准版和定制版。 答案是把定制与标准日历表关联起来。 1)首先我们肯定要有一张定制版日历表如下,添加一个不重复的ID列。 2)保留标准的日历表,按照定制版的日历表ID来给标准日历表设定ID。 比如2015年7月1日到2015年7月31日在定制的财年日历表中ID是7,那么我们需要在标准日历表中把2015年7月的每一天都标注ID为7,这个工作你可以直接在Excel源表中添加。 这个万金油句型就是 =Calculate([销售量], Filter( All('定制日历表‘), '定制日历表'[ID]=Max('定制日历表'
Prevent set or regional settings from interfering with the interpretation of dates/literalsSET DATEFIRST 7, -- 1 = Monday, 7 = Sunday DATEFORMAT mdy, LANGUAGE US_ENGLISH;DECLARE @StartDate date = '20100101 (DAY, @StartDate, @CutoffDate))SELECT n FROM seqORDER BY n OPTION (MAXRECURSION 0);说明:SET DATEFIRST 7: TheDayOfYear, IsWeekend = CASE WHEN TheDayOfWeek IN (CASE @@DATEFIRST WHEN 1 THEN 6 WHEN 7 THEN 1 END,7) THEN 1 ELSE 0 END, TheWeek, TheISOweek, TheFirstOfWeek
-180 -2,380 3 400 242 -158 -2,538 4 400 266 -134 -2,672 5 400 293 -107 -2,779 6 400 322 -78 -2,857 7 ('自定义投资日历表'[月序列]), [当期现金流入]-[当期现金流出] ) 3)计算累计现金净流量 累计现金净流量 = CALCULATE( [当期现金净流量], FILTER (ALL('自定义投资日历表'),'自定义投资日历表'[月序列]<=MAX('自定义投资日历表'[月序列])) ) 最后基于以上三个度量值计算投资回收期: 投资回收期 = VAR cashTable= //先构建一个项目投资的现金流量表 ADDCOLUMNS( VALUES('自定义投资日历表'[月序列]), "Date", EDATE(DATE(1900,1,31),'自定义投资日历表 '), '自定义投资日历表'[月序列]<=EARLIER('自定义投资日历表'[月序列]) ) ) ) VAR FILTERtable=//筛选出累计现金净流量大于或等于
通过接受用户输入的年份和月份,我们将计算该月份的天数,并输出一个日历表格,显示每个日期对应的星期几。这个日历功能可以帮助用户快速查看指定月份的日期分布,具有实用性和易用性。 System.out.println(); while (day <= daysInMonth) { for (int i = 0; i < 7 100; int k = year; int h0 = (q + 26 * (m + 1) / 10 + k + k / 4 + j / 4 + 5 * j) % 7; return (h0 + 5) % 7; } } 总结:通过以上的代码,我们实现了一个简单的日历功能。 用户可以输入年份和月份,程序会计算该月份的天数,并按照每周七天的格式输出一个日历表格。在日历表格中,我们使用空格来表示前面的空白日期,然后按照日期逐行输出,直到该月的最后一天。
改进 用这张表做关联,来LEFT JOIN 原有的日历表 select t.cal_day,ca.LAST_DAY from TCALENDAR t left join (SELECT T.CAL_DAY
经常有朋友问怎么计算两个日期间的工作日问题,本来,对于简单的计数问题,总不会复杂到什么程度,但是,对于这个问题,我通常会说,先确定你的工作日历表,也就是说,先定义好哪些算工作日,哪些算假期— 这种情况下,一般来说,应该有一个参与计算的完整的日历表,其中标明了哪些是工作日,哪些是假期——对于很多比较完整的企业数据模型来说,这种完整的日历表应该是比较好的解决方案(如果没有,建议建一个)。 样子大概如下: 这种情况下,计算主要就是对日历表进行筛选然后计数: 关于Table.SelectRows函数,前面写的文章里例子太多了,如果不了解,可以去搜索一下。
同时还有一份日历表,建立了关系 我们要通过计算每个月的期末余额 之前我们知道计算期末余额用到的函数为Lastdate函数,但是LastDate是针对数据源表的日期使用,如果对日历表的日期列使用,会对于小计这里产生不同的结果 使用LastDate函数用日历表日历,除非有每月最后一天的数据,则会在汇总栏进行显示,否则汇总栏显示空白。 使用LastDate函数用原表日历,则会在汇总栏显示最后日期的金额。 但是大部分情况下,我们的计算都是依据日历表日期进行计算或者筛选,如果计算时用了原表日历则会有时导致筛选无效的情况。 那我们看下如果用日历表达到同样的效果如何进行书写?
BI分析中,经常需要将事实表与时间维度表关联起来,按年/月/日来逐层展示,常用的做法是创建一张日历表,结构类似如下: create table T_BAS_CALENDAR ( d_year NUMBER d_month NUMBER(2) not null, d_day NUMBER(2) not null ); comment on table T_BAS_CALENDAR is '日历表 is 3 cmonth integer; 4 cyear integer; 5 cday integer; 6 day_first integer; 7 T_BAS_CALENDAR 28 (D_YEAR, D_MONTH, D_DAY) 29 VALUES 30 (CYEAR, CMONTH, SUBSTR(cday, 7)
treat不是cheat,虽说差了两个字母,却是天壤之别 操作员半哄半骗,系统里半推半就,倒也省去不少麻烦,尽管大胆使用,不必太有愧疚 下图中可以看出,“会员信息”与“日历表”干脆连虚线都没连上,将会员卡号与日历表日期放在一起
1 日历表 使用时间智能函数的前提是要有一张日历表。日历表分为两种,标准的和定制的。 那么为什么会有定制的日历表呢? 假设我们已经有了一张标准日历表,它是每天一行,连续无间隔的,并且已经做好了像年份季度、年份月份的这样的类别列。这张日历表是使用时间智能函数的前提。
案例 FIRSTDATE('日历'[Date]) FIRSTDATE('日历'[Date]>date(2019,1,10)) 解释:返回日历表中第一个时间,一般来说日历表都是排序好的,如果是未排序的日历 date(2019,1,10)) LASTDATE(DATESBETWEEN('日历'[Date], FIRSTDATE('日历'[Date]),LASTDATE('日历'[Date]))) 解释:返回日历表中最后一个时间
利用all函数写两个度量值: 当前销售量 = calculate(sum('销售数据表'[数量]),all('对比日历表')) 对比销售量 = calculate(sum('销售数据表'[数量]),all ('当前日历表')) 原理是计算当前时间时不受对比时间影响;计算对比时间时不受当前时间影响。
案例 建立日历表以及建立关系 注意: 必选选择日期列后才能新建日历表 建立关系后,在使用透视表的时候把多端的日历作为列 销售额:=sum('销售表'[销售金额]) 上年同期销售额:=CALCULATE
添加日历表并建立关系时通过添加列计算 请注意在日历表里面我们通过添加列的方式把月和星期给进行了合并生成月星期自定义列。 添加日历表并建立关系时通过度量值计算 周平均金额:= Calculate(Average('表1'[销售金额]), Filter(All('日历'[月星期]),
注意到表中的江门、马鞍山、唐山、襄阳排名为7,之后的排名就跳到了11,而不是第8名。其实RankX设计了多种可选项功能,你可以根据需要来设定排名方法。 ? 做一个折线图,轴为日历表中的年份月份,你就会得到这个占比。 ? 这个数字就有意义了,为什么前五名城市的占比会逐月持续下降呢?是因为城市分店数量的增加?还是新老店业绩发展期的交替? 这个时候,如果老板想要看前10名的情况,你只需要把TopN公式里的5改成10;如果想要按季度分析,只要把日历表中的年份月份换成年份季度,如果想要计算销售额而不是销售量,那就把销售量度量值都替换成销售额。
自定义时间轴有点类似定制日历表的原理(如果您没有学习过定制日历表,可以阅读日历表的使用这篇文章)。 5.
有2张表,一张是余额表,另外一张是日历表,并做关系链接。 ? ? 我们来看下3种写法,返回的不同结果。 第2个度量,是在日历表上进行筛选后进行返回最后日期,所以返回的也不带有汇总。 第3个度量因为返回的是相关表,也就是原表的日期,所以返回的时候也就有了汇总一栏。
再建立一个日历表并把3个时间各自和日历表的日期列建立关系。 ? 我们看到有1根是实线代表了默认激活状态,2根是虚线,代表未激活关系状态。
更新接口 "futures_rule" # 期货规则-交易日历表 期货规则-交易日历表 接口: futures_rule 目标地址: https://www.gtjaqh.com/pc/calendar.html
经常有朋友问怎么计算两个日期间的工作日问题,本来,对于简单的计数问题,总不会复杂到什么程度,但是,对于这个问题,我通常会说,先确定你的工作日历表,也就是说,先定义好哪些算工作日,哪些算假期——因为每个公司都不一样 这种情况下,一般来说,应该有一个参与计算的完整的日历表,其中标明了哪些是工作日,哪些是假期——对于很多比较完整的企业数据模型来说,这种完整的日历表应该是比较好的解决方案(如果没有,建议建一个)。 样子大概如下: 这种情况下,计算主要就是对日历表进行筛选然后计数: 总结 在实际工作中关于日期及其相关计算的问题,通常都有很多特殊的情况需要处理,比如这个例子中的特殊假期,还有其他的如年假天数计算等等