作者sojibai (丑男)
看板Office
标题Re: [问题] 请教OOo (calc的问题)
时间Tue Oct 23 15:33:35 2007
※ 引述《srtlct (why i'm so novia~~)》之铭言:
: (若是和其他不同软体互动之问题 请记得一并填写)
: 您所使用的软体为:
: 版本: 2.02
: 问题: 多层次选单问题
: calc的问题 我一直求助无门 (包含去问了补给站) 也没结果
: 不知道可不可以请教大大一下 就是我是想做一个CRM
: 但是每次客户讯息的项目很多 我已经有做统整了
: 也就是 我现在的问题是需要多层次的选单列表
: EX: 1------( TT ,44, FRF, JJ, OO, LL )
: TT------(GG, II, WW, DD)
: 44------(IJ, DO, WI, QQ)
: 也就是当我选1(第一层)的TT(第二层)时同时会让我可以再选择GG II WW DD ,同理
: 44也一样,之後当然会有可能到第三 四层
: 我该怎麽做呢?
: 请教板上高手
我习惯在资料四周空一栏一列,如果说明看的不习惯请多包含,这个
例子的完成档我放在TURBO UPLOAD的免费空间,需要等45秒才能下载
,下载网址是
http://0rz.tw/063cM ,如果看不到欢迎写信跟我要。
以下是用OOo 2.3RC试用版完成的,动态资料范围似乎是2.3版才新增
的功能,所以这个例子在OOo2.2版以下的版本会出现错误
首先在工作表输入资料
【工作表1】
A B C D E F
1
2 第一层 第二层 第三层 第四层 第五层
3
**************************************************
【工作表2】
A B C D E F
1
2 1 2 3 4 5
3 TT
4 44
5 ERF
6 JJ
7 OO
**************************************************
【工作表3】
A B C D E F
1
2 TT 44 ERF JJ OO
3 GG IJ
4 II DO
5 WW WI
6 DD QQ
***************************************************
利用动态范围作清单有三个比较重要的函数
OFFSET、MATCH、COUNTA
其中Openoffice.org对OFFSET有一段重要的说明如下
在 OpenOffice.org Calc 的函数中,只有当参数後面没有其
他参数时,才可以省略标示为「可选」的参数。例如,如果某
个函数有 4 个参数,其中最後 2 个参数标示为「可选」,
则您可以省略参数 4 或参数 3 和 4,但不能单独省略参数 3。
所以可能有人参考EXCEL之相关范例省略了参数,造成了错误。
工作表2与工作表3皆是由一个上层清单项目+一组清单项目所构成
以下便开始作多重式下拉清单,工作表1、工作表2与工作表3等工
作表名称请勿先行更改,待会输入公式时会比较方便。
先将页面切换至工作表1
定义第一层清单:
选取B3储存格,点取功能表列上的资料(D)→有效(V)
允许的下拉清单选储存格范围,来源填入
OFFSET(工作表2.$B$2;0;0;1;COUNTA($B$2:$IV$2))
当然您也可以先按Ctrl+F3键将上述式子定义成名称,假若已经将
名称定义成第一层,那嚜来源的地方只要填第一层即可
定义第二层清单:
选取C3储存格,如上述,来源填入OFFSET(工作表2.$B$2;1;
MATCH($B3;工作表2.$B$2:$IV$2;0)-1;COUNTA(OFFSET(工作表
2.$B$2;1;MATCH($B3;工作表2.$B$2:$IV$2;0)-1;65533;1));1)
范例档定义名称为第二层
定义第三层清单:
选取D3储存格,如上述,来源填入OFFSET(工作表3.$B$2;1
;MATCH($C3;工作表3.$B$2:$IV$2;0)-1;COUNTA(OFFSET(工作表
3.$B$2;1;MATCH($C3;工作表3.$B$2:$IV$2;0)-1;65533;1));1)
范例档定义名称为第三层
§1. MATCH函数後面要减1是因为OFFSET他移动的格数不算他本
身做基准那一格,所以会比MATCH函数算来的格数少1
$2. 65533可以用任何数字代替,不过必须多於你要放的清单
项次,COUNTA只是用来计算你清单开始的第1个储存格到
你设定的第n个储存格内有几笔清单资料
由二、三层可知只要各工作表保持相同格式只要将公式上的英数字
略作修改就可往下做更多层,选取整个你已做好定义的范围,拉右
下角小黑点往下拖曳至你想要的范围,以下各列就都可用多重式下
拉式清单罗,完成後各工作表可以改名,公式也会自动连动改,另
外若不想看到设定清单的工作表也可将之隐藏,按格式(O)→工作表
(S)→隐藏(H)
EXCEL有些函数跟Calc定义不太一样,上网查询相关EXCEL范例仿傲
仍做不出时可以看看OpenOffice的说明,可能是定义或规则哪边不
一样,再试着改EXCEL的例子以为己用,毕竟微软的各种讨论范例都
是比较容易取得的。
※ 编辑: sojibai 来自: 61.63.78.162 (10/26 19:47)