|
发表于 2009-3-22 14:57:15
|
显示全部楼层
SELECT的运用,对UFO公式的设计起到很大作用,现将我个人对此公式理解阐述如下,希望能对您有帮助!
例子:
A B C D E
项目 上月数 本月数 上年同期 本年累计
本文的例子是在同一张报表里面去本月数,上年数,以及上年同期!
上月数 B1=select(c1,年=@年 and 月=@月+1)
上年同期 D1=select(c1,年=@年+1 and 月=@月)
本年累计 E1=C1+select(D1,年=@年 and 月=@月+1)
对公式的理解:
“=”前的年、月为所在月份的报表所录入的关键字,”@”后的年、月是依据关键字计算出的结果,我认为,第一个年、月应视同常数,而第二个年月是依据第一常量而设定的变量。
设:本报表为2008年7月份,即:关键字为年=2008 ; 月=7
上月数 B1=select(c1,年=@年 and 月=@月+1)
第二年依据此年的关键字计算的结果为2008,月的关键字计算结果为:6+1,或理解为其结果为:关键字-1=7-1=6,因此,此单元格B1反映的数据为6月份,即:为上月数据
上年同期 D1=select(c1,年=@年+1 and 月=@月)
其公式与上月数据的含义类似,只是年发生变化,月不发生变化而已
本年累计 E1=C1+select(D1,年=@年 and 月=@月+1)
是本月数据与上月的本年累计数据的合计
以上是PETER0503先生的论述:
如果是新手的话可能看着有点点难,事实上在实施的时候吧这些公式粘贴下来复制到单元格里面,然后把字母与数字(列标)换成你编制的单元就可以应用!
但是接下来可能遇到的一个比较棘手的问题是,在每年年初的时候无法取道上年12月份的数据(即上月数),这在用友的视频和一些资料里面都没有提到过,! 甚至直接就是该公式(比如损益表的累计数)给人一种无法做到的误导!并且改完公式的结果是再无法取其他表数据! 也许能做到的,就是利用报表的二次开发了,但不是所有人对编程很精通?用用友自带的公式做1月份取上年12月份数实现!
废话少说!把公式粘贴出来,呵呵,一旦您看了公式可能会觉得很简单!但我想:这个问题既然难住了很多我认识的朋友,那么他还是有一定的难度的。(没有您做不到的事,只有您想不到的)
IFF ( 月=1,select(?D7,年@=年+1 and 月@=月-11),select(?D7,年@=年 and 月@=月+1) )
动用IFF函数!如果是在年初的时候。那么就取上年12月份的,如果是在2-12月份的,直接取本年上月的! |
|