以文本方式查看主题

-  易表在线答疑  (http://www.egrid2000.com/dvbbs/index.asp)
--  用户社区  (http://www.egrid2000.com/dvbbs/list.asp?boardid=2)
----  [求助]请对一个公式进行指教  (http://www.egrid2000.com/dvbbs/dispbbs.asp?boardid=2&id=1165)

--  作者:iyplx2425
--  发布时间:2012/4/6 10:19:00
--  [求助]请对一个公式进行指教
egd文件下载
文件中“结转与库存”表,[结转]列中,[月份]为字符型数据(还与其他文件关联),其中[月份]=“03”时的[结转]为手动录入(实际的盘点数),从04月份开始由表格自动计算。我用的[结转]刷新公式是:
if([月份] = "03",[件数/p_结转],FindText(GridName,"件数/p_库存","月份", "=" ,Number("月份") - 1,"产品代码", "=" ,[产品代码])),
但没能计算出来。不知问题出在哪里。请老师指教。谢谢!
--  作者:wjq1072
--  发布时间:2012/4/6 10:41:00
--  
if([月份] = "03",[件数/p_结转],FindText(GridName,"件数/p_库存","月份", "=" ,Right("0"+Text(Number([月份])-1),2),"产品代码", "=" ,[产品代码]))
--  作者:iyplx2425
--  发布时间:2012/4/6 10:43:00
--  
能用了。谢谢老师!
--  作者:iyplx2425
--  发布时间:2012/4/6 15:31:00
--  
老师,我把您的公式研究了后,省掉riht()效果也是一样的。同时也发现自己原来的公式错误在于数据类型的问题。Number([月份])-1是数值型数据,而表中[月份]是字符型的。改成,"0"+Text(Number([月份])-1)后就成了字符型了。这样理解对吗?

if([月份] = "03",[件数/p_结转],FindText(GridName,"件数/p_库存","月份", "=" ,"0"+Text(Number([月份])-1),"产品代码", "=" ,[产品代码]))

-=-=-=- 以下内容由 iyplx24252012年04月06日 03:37pm 时添加 -=-=-=-
不过我又想到一个需要处理的问题,如果到了11月份,这个公式就有问题了。那时,"0"+Text(Number([月份])-1)会成为010,将无法识别。可能只能把[月份]的字符改成自然数形式的,即1、2、3、4等等,并把公式里面的“0”+去掉。


--  作者:wjq1072
--  发布时间:2012/4/6 16:25:00
--  
月份列字符型
不是正好说明不能省掉“riht()”的吗!
月份数值符型
if([月份] = "03",[件数/p_结转],FindText(GridName,"件数/p_库存","月份", "=" ,[月份]-1,"产品代码", "=" ,[产品代码]))


-=-=-=- 以下内容由 wjq10722012年04月06日 05:48pm 时添加 -=-=-=-
你的第一个月不一定是“03”月吧?所以通用公司应该是:
If([月份]=FindText(GridName,"月份","产品代码", "=" ,[产品代码]),[件数/p_结转],FindText(GridName,"件数/p_库存","月份", "=" ,Right("0"+Text(Number([月份])-1),2),"产品代码", "=" ,[产品代码]))
--  作者:iyplx2425
--  发布时间:2012/4/8 15:48:00
--  
实际操作中,3月是起始月份,由手工输入,以后月份由公式计算。我试了,按我改动的公式做能达到预期效果。谢谢!

-=-=-=- 以下内容由 iyplx24252012年04月08日 03:49pm 时添加 -=-=-=-
老师说的是要解决11月份以后的问题吧?这个我还没试。