- 积分
- 32
- 实力分
- 点
- 金钱数
- 两
- 技术分
- 分
- 贡献分
- 分
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
上周看了有人问电子表格的应用问题,我用的是MC2 for Siemens,非常好用,今天有时间发一下教程;
先说一下语法:
语法格式可以说分两种,一种是帮助中给出的,操作步骤是菜单/单元格(cell)/edit lisp在里面输入语句即可。格式我不说了,因为帮助中也有实例,这种格式变量之间用空格隔开,变量与函数之间也用空格隔开所以不直观,而且加减乘除,大小比较,单元格表示都要使用语句表达(不能用+,/,>=,A3等表示),所以复杂语句很易混乱。
这里主要说另外一种格式,直接在单元格里输入,这种方法操作简单显示直观,而且加减乘除,大小比较,单元格表示都可以直接表示(如:+,/,>=,A3等),但一种情况用不了,我现在已经有了解决方案,在后面会提到。
语法格式为:函数名(变量,变量)变量之间用,隔开。变量与函数之间用括号隔开所以比较直观。
先从最简单的数学运算开始:
数学运算部分:
log(x):以e为底x的对数
exp(n):e的n次幂
add(a,b)等最基本运算(基本不用,因为可以直接使用+-*/)
sin(x),cos,tan,cot,asin,acos,atan三角函数运算,帮助中有反余切atan2,但实际中不好用,如果需要时可先求倒数再反正切
sqrt(x)对x开平方
pow(x,y):x的y次幂
☆重要:上面运算都必须是浮点型数据,否则不能运算。实例:pow(2.0,3.0)
这点非常重要,我刚一接触时总是求不出来感觉奇怪,后来发现就是因为输入了整数的问题
以下数据类型根据实际情况适当使用:
round(x,n)对x保留n位小数
sum(E9:F9,E9:E10,E9:F10)求和,该例即有横向、纵向、又有矩形求和,比如做一个电脑装机方案表格可用sum直接算价格。
sum也可以各种数据数型,如sum(E9:F10,1,1L,1.0)
totype(x,type)数据类型转换,基本用不上
控制判断等其它部分:
涉及没有定义过的函数或变量名时直接输入会出错,要在menu/cell/edit lisp里进行,但那里面不直观,短一点的还可以,复杂的语句就会眼花缭乱,我们可以把要改变函数或变量名先用一个数代替,然后再在lisp里代替回来就可以了,在这里举一个最简单的例子来说明:定义一个变量book=19本应该是setq(book,19),可以先用999代替setq(999,19)然后在menu/cell/edit lisp里把(setq 999 19)改成(setq book 19)即可,以后在这个表格用到book时可以直接应用,不需这样替换了。
讲完定义变量继续往下说:
定义函数:defun(abc,x(),10x*x+5x-30),abc需要替换,后面如遇到需要替换的不再提醒了
定义好后在其它单元格就可以应用了,如求这条抛物线x=20时的函数值直接输入abc(20)即可,因为abc已经定义过所以不需要替换,可以直接输入。
if举例:if(book>=1,"eq 1","eq 0")如果book>=1显示eq 1否则显示eq 0
isnil举例:isnil(A2)判断A2单元格是否为空,两种结果真和假
while:暂时想不到这个循环语句能在表格做点什么有意义的事情,在这里又不是编什么程序用它做什么?还是请别人想到后跟帖举一例子吧。
说一下主要的菜单:
menu/cell(单元格操作)
编辑,标记,粘贴,显示公式,清除,编辑lisp
menu/column(列操作)插入,删除,输入列宽,自动调整列宽与当前单元格匹配
menu/row(行操作)与列类似,不再细说
menu/selection(对选择区域进行操作)标记,粘贴,清除。标记两次后对选中区域进行粘贴清除操作
最后举一个自己应用的一个实例:
if(if(isnil(B32)=false,setq(ca32,1),setq(ca32,0))+if(isnil(C32)=false,setq(cc32,1),setq(cc32,0))>0,"full","empty")
说明一下,这段语句用来判断B32,C32是否为空,只要有一个不为空则显示full否则显示empty。(变量名要使用替换,如果这条语句在edit lisp里编写的话就会乱成一团)
小技巧:
输入当前日期:直接输入##即可自动输入
输入数值可直接按数字键快速输入,然后右软键菜单-确定即可 ,无需先按摇杆确定后输入,这样省去了切换输入法,负号按*输入,输入错误按挂机键删除
[ 本帖最后由 xnjatvj 于 2006-2-19 08:20 编辑 ] |
评分
-
查看全部评分
|