求excel引用上一工作表某单元格固定公式

2号工作表的a1等于1号工作表的c1。3号工作表的a1等于2号工作表的c1。4号工作表的a1等于3号工作表的c1。5号工作表的a1等于4号工作表的c1。6号工作表的a1等于5号工作表的c1。7号工作表的a1等于6号工作表的c1。如此每天一张工作表,求固定公式。

步骤1

打开做好的excel表格。公式中的相对单元格引用是基于包含公式和单元格引用的单元格的相对位置,若公式所在的单元格位置改变,则引用也随之改变。

1.选定单元格I3,其中的公式为“=SUM(C3:H3)”,求得个人的总分;

2.制定单元格I3右下角的填充柄,鼠标指着变成十形时,按住鼠标左键不放向下拖拽到要复制公式的区域;

3.释放鼠标后,即可完成复制公式的操作。

 


步骤2

亲们注意到了没,在I3的公式为“=SUM(C3:H3),在单元格I4的公式为”=SUM(C4:H4),后面单元格位置变了,相应的公式也变化了,这就是相对引用单元格。


步骤3

绝对引用指向工具表中固定位置的单元格,它的位置与包含公式的单元格无关。在表格里,要通过”$"符号来实现,在列标行号前添加。

例如:如果要在每个人总分后加上表现分28分,在单元格J3的公式为:=I3+C14。

如果像上面一样拖动填充柄填充会发现,公式变动,可是数据却没有变化,显然这样是不对的,因为C15,C16单元格都是零。
那么我们修改J3的公式,公式改为”=I3+$C$14”,然后拖动填充柄,会发现数据已经正常计算了。
其中的C14就被绝对引用了,公式可以填充使用了。

 

 


注意事项:

    $符号写在行前面是固定行数,写在列前面是固定列数,都写就是行和列都固定了。

    混合引用就是引用其中一行另一列,比如$A2*B$1,即固定A列和第一行,亲们可以自己试试。

追问

答非所问啊,亲。求的是第二工作表的a1等于第一工作表的c1。第三工作表a1等于第二工作表c1。……如此每天一张表a1,等于前一天一张表c1。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-06-12

Excel表格中引用上一工作表某单元格固定公式,其实用自定义函数无疑是最好的,如果不想用自定义函数,也可以用工作表函数,只是每次切换了工作表后都需要任意操作一下,如双击任意单元格(注意:选择单元格这样的操作无效),才会被计算。设定将工作表名称设置为:1号、2号…,在2号工作表的A1单元格输入公式,如下图:

公式及效果图

追问

你这是要用到工作表名称是吧?如果工作表按百家姓排序呢?这个公式还能用吗?我是希望本工作表的某单元格等于上一工作表某单元格。

追答

只有用VBA编程

第2个回答  2021-06-12
假设有工作表1,2,直到31
选择工作表2,按住SHIFT键,选择工作表31。此时选择了工作表2-31共30个工作表
在其中任一工作表的A1中输入或复制粘贴下列公式
=INDIRECT(RIGHT(CELL("filename"),LEN(CELL("filename"))-FIND("]",CELL("filename")))&"!C1")
选择此工作表的A1单元格,开始,编辑,填充,至同组工作表,默认选择全部,确定。追问

不是一次性就有那么多工作表。是要每天新建一个工作表,该工作表某单元格等于上一工作表某某单元格。

第3个回答  2022-10-24
前提:工作表的名称必须纯数字且序号规律,比如1,2,3...以此类推
在本工作表的A1单元格输入公式:=INDIRECT(RIGHT(CELL("filename",A1),1)-1&"!C1")
公式剖析:
1. CELL("filename",A1):取本工作表的路径:C:\Users\SYN\Desktop\[新建
Microsoft Excel.xls]2
2. RIGHT(CELL("filename",A1),1)-1:本工作表名称的最右的1位数,即2,再减去1;此步骤是为了得出上一工作表的路径,即C:\Users\SYN\Desktop\[新建 Microsoft Excel.xls]1
3. 用INDIRECT函数把第2步的工作表路径跟C1组合起来:INDIRECT(RIGHT(CELL("filename",A1),1)-1&"!C1")
注意:在第10个工作表、第100个工作表、第1000个工作表时,需要对第2步的参数进行修改
第10个工作表:RIGHT(CELL("filename",A1),2)-1
第100个工作表:RIGHT(CELL("filename",A1),3)-1
第1000个工作表:RIGHT(CELL("filename",A1),4)-1
第4个回答  2021-06-13
新建工作表需要按照固定的顺序,或从左往右插入(选定工作表之后)或从右往左插入(选定工作表之前),任意位置乱序插入的话,啥神仙公式也解决不了问题。若是不想将工作表按名称排序,只是想按照工作表插入建立的先后顺序来实现的话,需要VBA。 我提供你个自定义函数的解决办法。
Function lj()

Set d = CreateObject("Scripting.Dictionary")
For i = 1 To Sheets.Count
Set sh = Worksheets(i)
p = Replace(sh.CodeName, "Sheet", "") * 1
d(p) = sh.Name
Next i

sr = Replace(ActiveSheet.CodeName, "Sheet", "") * 1
If d.exists(sr - 1) Then
nn = d(sr - 1)
lj = Sheets(nn).[C1].Value
End If

End Function
启用宏的环境,按ALT+F11打开VBE编辑器,插入模块,先把上面的代码贴在模块的代码窗中,注意文件保存为.XLSM或.XLS的格式,否则代码保存不了。
然后在A1单元格中输入=lj() 就OK了,希望你帮助到你追问

没看懂

相似回答