Board logo

标题: [其他] 问个关于excel的引用的问题 [打印本页]

作者: neversc0t    时间: 2009-6-1 15:51     标题: 问个关于excel的引用的问题

做了个表
有很多个sheet
怎么写公式
能让每个sheet中的某列单元格的值总引用它左边sheet里另一列中的某个单元格的值??
我用了mid不行啊~~~~~~
例:a2=sheet(mid(a1,6,1)-1)!e2 但似乎没有这样的公式(因为a1这个单元格内有sheet的序号)





跪求

[ 本帖最后由 neversc0t 于 2009-6-1 20:11 编辑 ]
作者: 利露    时间: 2009-6-1 15:53

可以啊,="列id"
作者: neversc0t    时间: 2009-6-1 15:54

引用:
原帖由 利露 于 2009-6-1 15:53 发表
可以啊,="列id"
但是不是一个sheet啊
作者: 利露    时间: 2009-6-1 15:55

引用:
原帖由 neversc0t 于 2009-6-1 15:54 发表

但是不是一个sheet啊
=开始列:结束列
作者: leica    时间: 2009-6-1 15:58

先输入公式,需要调用旁边sheet的数据的时候,比如调用某行某列的数据,就直接点那个sheet的那个数据格就会放到公式里面作为参数了。。。。。。。。。。。
作者: neversc0t    时间: 2009-6-1 16:01

引用:
原帖由 利露 于 2009-6-1 15:55 发表


=开始列:结束列
有点不明白了~~~


这么说吧
sheetn里的a列每个单元格的值等于shee(n-1)里e列每个单元格的值

如何做

直接写个例子给我吧
谢谢~~~
作者: neversc0t    时间: 2009-6-1 16:02

引用:
原帖由 leica 于 2009-6-1 15:58 发表
先输入公式,需要调用旁边sheet的数据的时候,比如调用某行某列的数据,就直接点那个sheet的那个数据格就会放到公式里面作为参数了。。。。。。。。。。。
我需要的是
写一个公式

而不是每次都去点~~~

这意思~~~
作者: 利露    时间: 2009-6-1 16:09

引用:
原帖由 neversc0t 于 2009-6-1 16:01 发表

有点不明白了~~~


这么说吧
sheetn里的a列每个单元格的值等于shee(n-1)里e列每个单元格的值

如何做

直接写个例子给我吧
谢谢~~~
最简单的了,你选中你要匹配的列,然后打"=",然后再选中你要匹配的列
如你要等于图中那个“11”

[ 本帖最后由 利露 于 2009-6-1 16:11 编辑 ]
作者: 我不懂    时间: 2009-6-1 16:12

直接把excle打包传上来
作者: neversc0t    时间: 2009-6-1 16:16

引用:
原帖由 我不懂 于 2009-6-1 16:12 发表
直接把excle打包传上来
快下班了

明天吧
作者: neversc0t    时间: 2009-6-1 16:19

引用:
原帖由 利露 于 2009-6-1 16:09 发表


最简单的了,你选中你要匹配的列,然后打"=",然后再选中你要匹配的列
如你要等于图中那个“11”
这样的话
一个sheet没问题
但每个sheet都要这样操作一次啊

有没有公式可以一劳永逸啊~~
作者: 利露    时间: 2009-6-1 16:27

引用:
原帖由 neversc0t 于 2009-6-1 16:19 发表

这样的话
一个sheet没问题
但每个sheet都要这样操作一次啊

有没有公式可以一劳永逸啊~~
你的单元格很多吗?
作者: neversc0t    时间: 2009-6-1 19:35

引用:
原帖由 利露 于 2009-6-1 16:27 发表


你的单元格很多吗?
很多
很多
很多


所以我才想要用公式的嘛
作者: leopenny    时间: 2009-6-1 19:52

引用:
原帖由 neversc0t 于 2009-6-1 16:01 发表

有点不明白了~~~


这么说吧
sheetn里的a列每个单元格的值等于shee(n-1)里e列每个单元格的值

如何做

直接写个例子给我吧
谢谢~~~
你sheetn里a列 里 每个格 是要顺序等于 sheet(n-1)里 e列里每个格么

那你就在sheetn a列里第一个格输入=号 然后去sheet(n-1)里 e列点一下那第一个格 然后按回车

然后把 sheetn a列第一个格 点中, 那个格子右下角按住鼠标往下拉
作者: neversc0t    时间: 2009-6-1 19:56

引用:
原帖由 leopenny 于 2009-6-1 19:52 发表


你sheetn里a列 里 每个格 是要顺序等于 sheet(n-1)里 e列里每个格么

那你就在sheetn a列里第一个格输入=号 然后去sheet(n-1)里 e列点一下那第一个格 然后按回车

然后把 sheetn a列第一个格 点中, 那个格子 ...
这种做法我会的


但是我的sheet也很多 行也很多
所以我想要一个方法
能写一个公式
所有的sheet都适用
而不是这种点选的引用方式
作者: cc0128    时间: 2009-6-1 20:14

写宏啊。
几个循环搞定
作者: neversc0t    时间: 2009-6-1 20:21

引用:
原帖由 cc0128 于 2009-6-1 20:14 发表
写宏啊。
几个循环搞定
不会啊

帮忙写下吧
谢了
作者: leopenny    时间: 2009-6-1 20:30

是所有的sheet都去等于 sheet(n-1) e列 每个格里的么
那就写公式 = sheet(n-1)!e1......列

[ 本帖最后由 leopenny 于 2009-6-1 20:34 编辑 ]
作者: neversc0t    时间: 2009-6-1 20:34

引用:
原帖由 leopenny 于 2009-6-1 20:30 发表
是所有的sheet都去等于 sheet(n-1) e列 每个格里的么
那就写公式 = sheet(n-1)!e1......列
我就是那样写的

报错的
作者: leopenny    时间: 2009-6-1 20:40

怎么会报错呢  世界上最简单的一个excel公式之一
作者: neversc0t    时间: 2009-6-1 20:46

引用:
原帖由 leopenny 于 2009-6-1 20:40 发表
怎么会报错呢  世界上最简单的一个excel公式之一
直接写不报错
但嵌套了mid之后就不行了
我想要的是sheet是变量
不是常量
作者: neversc0t    时间: 2009-6-2 07:53

引用:
原帖由 cc0128 于 2009-6-1 20:14 发表
写宏啊。
几个循环搞定
帮忙写个宏吧~~~~
作者: cc0128    时间: 2009-6-2 10:45

把文件发上。我看看。
作者: neversc0t    时间: 2009-6-2 11:02

引用:
原帖由 cc0128 于 2009-6-2 10:45 发表
把文件发上。我看看。
我只能发一部分

见谅 公司有规定的~~~~

稍等
作者: leica    时间: 2009-6-2 11:10

那你完全改变一下文件里面的内容更换数据再发不成么。那么死板?
作者: neversc0t    时间: 2009-6-2 11:20

引用:
原帖由 leica 于 2009-6-2 11:10 发表
那你完全改变一下文件里面的内容更换数据再发不成么。那么死板?
这不正在改嘛?

[ 本帖最后由 neversc0t 于 2009-6-2 11:25 编辑 ]
作者: neversc0t    时间: 2009-6-2 13:18

就简单先发个样子吧

要让sheet(n)中的B列中从B4开始的单元格的值
等于sheet(n-1)中I列中从I4开始的单元格的值

我的sheet非常多
如果直接用“=” 再往下拖的话会吃不消的

求公式或vba方法

表格在附件内~~~
作者: leopenny    时间: 2009-6-2 22:31

Copy整列, 选择性粘贴-公式,试试看
作者: 猫猫的小叔叔    时间: 2009-6-2 22:41

TG万能系系列~
作者: neversc0t    时间: 2009-6-2 22:52

引用:
原帖由 leopenny 于 2009-6-2 22:31 发表
Copy整列, 选择性粘贴-公式,试试看
我需要的是公式或是vba~~~~~~
作者: leopenny    时间: 2009-6-2 23:00

你如果是公式难道不需要每个sheet都写一次么? 你到底有多少个表格 100个以上?
我说的那就是公式啊
作者: neversc0t    时间: 2009-6-2 23:12

引用:
原帖由 leopenny 于 2009-6-2 23:00 发表
你如果是公式难道不需要每个sheet都写一次么? 你到底有多少个表格 100个以上?
我说的那就是公式啊
公式的话 写一次进去就行了
不用每次都复制啊

不知我理解的对不对
作者: 绯雨流    时间: 2009-6-2 23:17

学习了。
作者: jinwyp    时间: 2009-6-3 03:09

在 b2上 写上 =INDIRECT("sheet"&$L$1&"!I"&ROW())

然后向下复制 整列

然后选中sheet6 b列  复制  然后 选中所有sheet 粘贴到B列上  这样所有sheet b列就都有 =INDIRECT("sheet"&$L$1&"!I"&ROW())

然后在每个sheet 的L1 填上前一个sheet的数  例如sheet6 L1填上5 就可以了

当然用vba更快 但能不用vba就不用vba才是高手

[ 本帖最后由 jinwyp 于 2009-6-3 03:13 编辑 ]
作者: neversc0t    时间: 2009-6-3 08:18

引用:
原帖由 jinwyp 于 2009-6-3 03:09 发表
在 b2上 写上 =INDIRECT("sheet"&$L$1&"!I"&ROW())

然后向下复制 整列

然后选中sheet6 b列  复制  然后 选中所有sheet 粘贴到B列上  这样所有sheet b列就都有 =INDIRECT("sheet"&$L$1&"!I"&ROW())

然后在每 ...
受教了

能否给我解释一下这个公式~~~~
作者: cc0128    时间: 2009-6-3 10:03

写了个宏的。每个excel只需要改下参数执行一次就可以了。
这个可不是公式啊。打开宏里面有注释的。
修改前面4个变量就好。
Sub test()
maxNum = 6  '最大sheet数 比如现在最大的sheet是sheet6 所以是6
minNum = 5 '最小sheet数 比如现在最小的sheet是sheet5 所以是5
fristRow = 4 '起始行
lastRow = 72 '结束行
For i = maxNum To minNum + 1
    For j = fristRow To lastRow Step 3
        Sheets("Sheet" & i).Cells(j, 2).Value = Sheets("Sheet" & (i - 1)).Cells(j, 9).Value
    Next j
Next i
End Sub

[ 本帖最后由 cc0128 于 2009-6-3 10:04 编辑 ]
作者: neversc0t    时间: 2009-6-5 16:27

引用:
原帖由 cc0128 于 2009-6-3 10:03 发表
写了个宏的。每个excel只需要改下参数执行一次就可以了。
这个可不是公式啊。打开宏里面有注释的。
修改前面4个变量就好。
Sub test()
maxNum = 6  '最大sheet数 比如现在最大的sheet是sheet6 所以是6
minNum = ...
vba基础太差
有点看不懂

请解释下~~~~~~~~




欢迎光临 TGFC Lifestyle (http://bbs.tgfcer.com/) Powered by Discuz! 6.0.0