作者docopkmola (running man)
看板Office
标题[问题] excel图表,上下限设为变数
时间Fri Oct 7 11:09:41 2016
(若是和其他不同软体互动之问题 请记得一并填写)
软体:excel 2010
版本:excel2010
请问能否将excel图表的上下限设为某储存格
只要改储存格的数值,图表上下限就会跟着变动?
希望是VBA之外的做法……
或是要查照那些关键字呢?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 42.72.92.21
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Office/M.1475809783.A.7D6.html
1F:→ waiter337: 上下限 是指说 锁住 其他区域也拉不过去? 10/07 13:32
2F:→ waiter337: 还是说 只是订个视窗上下范围而已 如果其他区域要查还 10/07 13:33
3F:→ waiter337: 是可以拉动? 10/07 13:33
4F:→ waiter337: 我有一个很粗糙的办法0,0 10/07 13:46
5F:→ waiter337: 你先将视窗回到最左最上a1这里,然後将右下角比例 10/07 13:47
6F:→ waiter337: 调整至50%以下 10/07 13:47
7F:→ waiter337: 接着选最右下的那格储存格,"不要拉动视窗喔" 10/07 13:48
8F:→ waiter337: 然後>检视>冻结窗格 10/07 13:48
9F:→ waiter337: 再把画面比例改回100 10/07 13:48
10F:→ waiter337: 如果要改数值就会变动 我认为只能靠vba 0,0 10/07 13:49
11F:→ waiter337: 抱歉 我没注意到还要设定上下限=,= 10/07 13:58
12F:→ waiter337: 是可以不用用到vba 但是 你要开一个新的分页就可以 10/07 13:59
13F:→ soyoso: 原po要的不是要"图表"的上下限吗?似乎和显示比例又无关系 10/07 14:10
14F:→ waiter337: a1==IF(INDEX(vba!A1:A100,$A$5,$B$5)="","",INDEX(vba 10/07 14:11
15F:→ waiter337: !A1:A100,$A$5,$B$5)) 10/07 14:11
16F:→ waiter337: 然後把a1的公式 复制a1到z1 接着再复制到a1:z4 10/07 14:12
17F:→ waiter337: a1=IF(INDEX(vba!A1:A100,$A$5,$B$5)="","",INDEX(vba! 10/07 14:13
18F:→ waiter337: A1:A100,$A$5,$B$5)) 10/07 14:13
19F:→ waiter337: 更正一下 这个公式 10/07 14:13
21F:→ waiter337: 然後a5可以输入你要的第一个位置 b5是输入左右的位置 10/07 14:14
22F:→ soyoso: 小和最大值以变数带入 10/07 14:14
23F:→ waiter337: =, = 没注意到是图表 10/07 14:15
24F:→ soyoso: 这方面想到是利用巨集vba协助,但原po已在原文打上vba之外 10/07 14:16
25F:→ soyoso: 的做法了 10/07 14:16
26F:→ waiter337: so大,会不会他想要的是 10/07 14:19
27F:→ waiter337: 先在资料面上 先用公式撷取出他的资料范围 10/07 14:19
28F:→ waiter337: 然後再靠图表展示出 刚好他想要的上下限 10/07 14:20
29F:→ waiter337: 可是这个我就不大行了 = = 我是图表白痴 10/07 14:20
30F:→ waiter337: 但如果是先行在资料面上先用公式求出你想展示的范围 10/07 14:21
31F:→ waiter337: 图表只是展示出你的那段范围 应该是可行的 10/07 14:21
32F:→ waiter337: 但就要有原po的资料来做客制化 10/07 14:22
33F:→ soyoso: 有可能;也有可能是图表内上下限值,如 10/07 14:31
35F:→ soyoso: 上面连结则无需以vba巨集方式 10/07 14:32
36F:→ waiter337: 回原po "vba!"这个不是vba,只是一个sheet的名称而已 10/07 14:41
37F:→ waiter337: 原po试试查 if, index, row, offset, large,small 10/07 14:42
38F:→ waiter337: 这些,如果只要定义资料的范围 我那几行可以参考 10/07 14:43
39F:→ waiter337: 再沿用到图表上 10/07 14:44
40F:→ waiter337: 还有column 10/07 14:45
41F:推 waiter337: 如果资料量很大 你可以这把公式改成 10/07 14:47
42F:→ waiter337: a1=IF(INDEX(sheet2!A:A,$A$5,$B$5)="","",INDEX( 10/07 14:47
43F:→ waiter337: sheet2!A:A,$A$5,$B$5) 10/07 14:48
44F:→ waiter337: ㄟ 好像不行= = 10/07 14:49
45F:→ waiter337: a1=IF(INDEX(sheet2!A1:A1000,$A$5,$B$5)="","",INDEX( 10/07 14:49
46F:→ waiter337: sheet2!A1:A1000,$A$5,$B$5) 10/07 14:49
47F:→ waiter337: 假如你的表有8888横列,拟就改成A1:A8888 10/07 14:50
48F:→ soyoso: 楼上所打公式index内参照sheet2!a1:a1000(一栏多列),引数 10/07 15:09
49F:→ soyoso: column_num如打上2以上会出现#ref的错误 10/07 15:10
50F:→ soyoso: 且公式於储存格a1但参照储存格a5的值,那下拉时不就会覆盖 10/07 15:17
51F:→ soyoso: 公式也只有上限,无可设的下限,下限为最後一笔资料吧了 10/07 15:47
52F:→ soyoso: 要动态范围图表#17RrkJNO版上这里有 10/07 15:49
53F:→ waiter337: sheet2!a1 =IF(INDEX(sheet1!A1:A1000,sheet1$c$5:shee 10/07 16:06
54F:→ waiter337: 重来一下 10/07 16:10
55F:→ waiter337: 在工作表(sheet2)的a1贴上 10/07 16:10
56F:→ waiter337: =IF(INDEX(sheet1!A1:$A$65536,sheet1!$c$1,sheet1!$d 10/07 16:11
57F:→ waiter337: $1)="","",INDEX(sheet1!A1:$A$65536,sheet1!$c$1,shee 10/07 16:11
58F:→ waiter337: t1!$d$1) 10/07 16:11
59F:→ waiter337: 在工作表(sheet2)的 c1可以控制上下 d1控制左右 10/07 16:12
60F:→ waiter337: 或者用s大说的方式 10/07 16:15
62F:→ soyoso: d1要给使用者输入,回文就打了一栏多列,引数column_num自 10/07 16:19
63F:→ soyoso: 行打入2以上就会出现#ref的错误,那要如何以d1控制 10/07 16:20
64F:→ soyoso: 连结完全是回文16:11的公式,我没有动,工作表名称和公式 10/07 16:21
65F:→ soyoso: 位置都照回文的地方打的 10/07 16:21
66F:→ luckid: s大息怒,回w大,其实这版上几乎九成以上的问题都是s大解决 10/07 16:36
67F:→ luckid: s大无私分享并替版友解答不求回报,我也是其中受惠的一员 10/07 16:37
68F:→ luckid: 那麽我想s大算是excel这方面的专家,其实可以尊重一下 10/07 16:38
69F:→ luckid: 以上只是一点个人看法,不好意思(汗)... 10/07 16:38
70F:→ waiter337: 由於原po没有资料可以参照,我也只有做a栏的设置 10/07 16:39
71F:→ waiter337: 我哪里不尊重他 10/07 16:40
72F:→ waiter337: 而且学海无涯,excel的变化方式并非只有一种 10/07 16:41
73F:→ waiter337: so的方式我认为都很历害 10/07 16:41
74F:→ waiter337: 我也很尊重他 但是在程式设计上,就是一直揪错,改正 10/07 16:42
75F:→ waiter337: 他有他的方法,我也有一些可行的方法 10/07 16:42
76F:→ waiter337: 假设原po有bcde的资料,只要从a复制过去, cd移到其他地 10/07 16:44
77F:→ waiter337: 方而已,我还在想理智线是什麽函数 10/07 16:45
78F:→ waiter337: 这是共同讨论板巴,还是说这其实是个板吗?老实说,我已经 10/07 16:46
79F:→ waiter337: 一直在退让许多界线了,因为我不是高手,能提共的资讯有 10/07 16:46
80F:→ waiter337: 限,我也没那麽大脾气,我看到好的烂的,我也是一直抱着学 10/07 16:47
81F:→ waiter337: 习心态,平心静气在修练,为什麽要一直打压我这种新手? 10/07 16:47
82F:→ waiter337: 还是说令有隐情吗?跟p币有关吗?各种刁各种酸,对於学习 10/07 16:50
83F:→ waiter337: 有帮助吗? 别哪壶不开提哪壶 10/07 16:50
84F:→ soyoso: 那我假设好了如果是a:b二栏,楼上要如果控制左右呢? 10/07 16:50
85F:→ soyoso: 以提供的公式来看,应该是会让使用者於d1打上2吧 10/07 16:53
87F:→ waiter337: 1.为什麽要控制左右? 10/07 16:54
89F:→ soyoso: 因为时间16:12回文你写到d1控制左右 10/07 16:56
90F:→ soyoso: 储存格d1应是要使用者自行keyin的吧 10/07 16:57
91F:→ waiter337: 我刚实际测试发现确实是有问题 但我也很纳闷 10/07 16:59
92F:→ waiter337: 关键在 10/07 16:59
93F:→ waiter337: sheet1!A1:$A$65536 10/07 17:00
94F:→ waiter337: 当我拉到b栏 他会变成 sheet1!$A1:B$65536 10/07 17:00
95F:→ waiter337: 正确应该是 sheet1!b1:B$65536,sheet1! 10/07 17:01
96F:→ waiter337: 但好玩的是从b栏在拉到c栏 10/07 17:01
97F:→ waiter337: 确又不会出问题 10/07 17:02
98F:→ waiter337: sheet1!C1:C$65536 10/07 17:02
99F:→ waiter337: 当用这种方式,基本上应该没问题巴 10/07 17:03
100F:→ soyoso: 重点是d1打上什麽值都不是变数,会变的是公式拖曳下范围的 10/07 17:03
101F:→ soyoso: 改变或以column()的方式 10/07 17:04
102F:→ waiter337: 大概是应该把a栏改成 sheet1!A1:A$65536 10/07 17:04
103F:→ waiter337: 才对,不小心F4锁定了a栏 10/07 17:04
105F:→ soyoso: 改成sheet1!A1:A$65536,如还是要以d1控制左右的也是错的 10/07 17:07
106F:→ waiter337: 感谢s大指证 10/07 17:07
107F:→ waiter337: 那就得用s大说的offset的来做了 10/07 17:08
108F:→ soyoso: 回时间16:46这不是个板,回文正确没什麽可揪错的 10/07 17:11
109F:→ soyoso: 16:47和p币无关,如果我要赚的话就回文到板上,那才有p币 10/07 17:12
110F:推 waiter337: 有错 我一定会想办法修正,我会注意 10/07 17:15
111F:→ waiter337: 以後我会注意 10/07 17:15
112F:→ luckid: 造成w大的不快我很抱歉,请多海涵,是我发言不当,对不起 10/07 17:17
113F:推 waiter337: 我也对p没兴趣,我对excel的共享模式更是大大赞赏 10/07 17:17
114F:推 waiter337: 我只有想学会vba才来到这里为主要目的 10/07 17:18
115F:→ waiter337: 我只会针对程式码跟函数来进行交流 10/07 17:19
116F:→ waiter337: 什麽名气什麽p币我一概没兴趣 10/07 17:20
117F:推 waiter337: 因为我工作上蛮需要写出许多资料库,所以还在加紧学习 10/07 17:22
118F:→ waiter337: sheet1!a1:a 应该就可以了,不用$65536 10/08 04:13
119F:→ waiter337: = = 阿 这是vba才能用的语法 搅错了 10/08 06:03
120F:→ soyoso: 这是vba才能用的语法,应是指sheet1!a1:a吧,因无看过这种 10/08 09:21
121F:→ soyoso: 写法,请问是指? 10/08 09:21
122F:→ docopkmola: 不知道版上各位这麽热心,回覆这麽热络…不过抱歉可 10/08 15:11
123F:→ docopkmola: 能是我问题不够清楚… 10/08 15:11
124F:→ docopkmola: 如s大10/7 14:14的回覆,就是我想问的问题… 10/08 15:13
125F:→ waiter337: 不愧s大 神预测! 10/08 16:29