excel跨表格引用遇到的两个问题?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了excel跨表格引用遇到的两个问题?相关的知识,希望对你有一定的参考价值。

1、被引用的表格改名字后,如何让公式中被引用的表格名称自动更新
2、不打开被引用的报表,公式无法引用计算,显示错误,如何在不打开被引用的报表的情况下,公式可以进行引用计算

根据你的描述,要不两个问题不是指同一个公式引用,要不就是你对跨表引用与跨工作簿引用没有区分清楚。
跨表引用一般称为跨工作表引用,是指在同一工作簿(同一文件)内引用另外工作表中的数据;而跨工作簿引用是指在不同的工作簿(不同的文件)之间引用数据。所以跨工作表引用不可能出现你所说的问题2的情况,因为跨工作表引用打开有引用公式的工作簿时,同一工作簿中的工作表就都是打开的工作簿中的工作表了。
再来说问题问题1:一般情况下,如果直接用工作表名称加区域地址引用的话,修改原工作表的名称后,是必须手动引用了该工作表数据的公式中工作表名称的,Excel不会自动去修改。要实现自动更新,方法是:选择先把被引用的数据区域(或单元格)定义为一个名称,如Sheet2中A2:B100(比如在vlookup中做第2参数)定义为:Data,这样公式引用的地方就用Data而不用Sheet2!A2:B100。定义名称后,把工作表Sheet2无论修改为什么名称,因为公式引用的是Data,仍会正确引用。
问题2:应该就是前面所说的跨工作簿引用了,跨工作簿引用一般是要打开被引用工作簿时,公式才能正确显示正确结果的。但最近发现,貌似在最新的Excel2019中,不打开被引用的工作簿,也可以正确显示。但是否任何引用公式都能正确显示,还有待进一步验证。但不管怎样,跨工作簿引用一般用数据查询的方法,如Power Query、SQL或VBA更合适。追问

如何定义被引用的数据区域,
ps:问题2的情况可能是公式中某个函数特性造成,有一列使用了indirect函数

追答

最简单的定义名称的方法是:选择数据区域后,在工作表公式编辑栏的左侧框中直接输入一个便于自己记忆和理解名称。

参考技术A 第一问:公式表格的名称也引用被引用的表格的名称就好啦
第二问:把被引用的excel里需要的那一张表复制到引用的excel文件下(表格标题点右键,复制或移动)。然后再右键点新表格的标题,隐藏就看不到啦

Excel 区域表格化及结构化引用

      提到区域表格化,大多数同学可能会感到不解,这是因为大家对区域和表格话的概念是模糊的。什么是区域?表格化是什么?excel工作表不就是表吗,为什么还要表格化呢?接下来,我就先为大家解释这几个问题。概念清楚了,在看看表格化后有什么功能。

     区域和表格的概念咱们用以下两个截屏来解释:


下图,是我们常用的excel工作表,所谓之区域,就是没有表格化之前的这些单元格

技术分享


选中区域中任意单元格 ,通过下图的操作,我们就可以将区域表格化。

技术分享


下图为表格化后的表格:

技术分享

大家可以看到表格化后的表格被作为一个整体(相对之前的区域来说),有自己的design设计标签。我们可以为表格命名,应用样式,添加标题列,汇总列,等等操作。

      表格和区域有哪些具体的不同呢?(个人认为,如有错误请指正)

     1当你激活表格中的任意单元格都会在工具栏出现表格工具标签。

     2每个列的标题啊都会自动出现下拉按钮以供排序和筛选

    3列标题行会被自动锁定。

    4表格化后的表格自动条用表格样式

    5表格支持结构化引用(让你的表格更智能,编辑公式更方便)

     6可以通过表格右下角的小图标扩展表格大小

    7可以通过按钮删除重复行。

     8添加数据可以自动扩展表格区域(在汇总行之下添加数据不会自动扩展)

    总之,就是表格化后,就自动添加了很多功能,操作起来更方便。

    
     区域在表格化后就可以进行结构化引用了。

    也只有表格才能进行结构化引用。

    接下来我们用以下两个工作表举例说明结构化引用。 

     技术分享
    然后我们在工作表 IT stock中以 S/N列作为查找值,工作表201407中的SN列到module列为查找范围进行vlookup


    这里在B2写的vlookup公式中 TABLE4[S/N] 是代表当前表(table)的S/N列,TABLE3[SN]:[module]是代表table3(sum201407)的sn列到module列的这一个范围。在编辑公式的时候,结构化应用都会自动的为你提供下拉列表供你选择,非常智能化。技术分享


我们在B2写完公式,公式会自动的填充表的公式所在列,非常方便。如下图,因为S/N列还没有值所以这里返回的是#N/A.这里公式我们已经编辑好了

技术分享


接下来我们去将Table3(sum201407)的SN列的值粘到 Talbe4的S/N列,大家会看到不论你粘了几行,表都会自动的随着你的数据行数来扩展,公式也随之自动扩展。

技术分享

表的结构化引用对于我们的日常工作效率的提升是非常有帮助的。

但是表的结构化引用是有规范格式和语法的。


我们以刚才的公式来进行说明

=VLOOKUP([S/N],Table3[[SN]:[Module]],2,FALSE)


 1 其中表名Table # 称是指提供用于引用实际表格数据(若有标题行和汇总行,将不包括它们)的有意义的名称。 每次插入表格时,Excel 都会在全局工作簿级别或范围创建默认表名称(Table1、Table2 等)。你可以轻松更改该名称,使其对你更富有意义。例如,要将 Table1 改为 SUM,可以使用“编辑名称”对话框。(在“设计”选项卡上“属性”组的“表名称”框中,编辑表名称。)


 2 列说明符[列标题名] 如[SN]与列标题同名,由中括号扩其表示引用此列(若有标题行和汇总行,将不包括它们) 应用区域的话就是Table3[[sn]:[module]]


以下是结构化项目说明符

=TABLE4[#All]      整个表格,包括列标题、数据和汇总(如果有)。

=TABLE4[#Data]  仅数据。

=TABLE4[#Headers]    仅标题行。

=TABLE4[#Totals]         仅汇总行。如果不存在汇总行,它将返回 null

=TABLE4[#ThisRow]   仅当前行的列部分。#ThisRow 不能与任何其他特殊项目说明符组合。它可以用于强制执行引用的隐式交叉行为,或替代隐式交叉行为并引用列中的单值。


结构化应用示例

=Table4[[#All],[S/N]]   S/N”列中的所有单元格。

=TABLE4[[#Headers],[S/N]]      S/N”列的标题。

=TABLE4[[#Totals],[Region]]    Region”列的汇总。如果不存在汇总行,将返回 null

=TABLE3[[#All],[SN]:[MODULE]]   TABLE3”和“SN”到“module”列中的所有单元格。

=table3[[#Data],[SN]:[MODULE]    仅“SN”和“MODULE”列的数据。

=TABLE3[[#Headers],[SN]:[MODULE]]     仅“SN”和“MODULE”之间的列的标题。

=TABLE3[[#Totals],[SN]:[MODULE]]从“SN”到“MODULE”列的汇总。如果不存在汇总行,将返回 null

=SN[[#Headers],[#Data],[MODULE]]   仅“ComPct”列的标题和数据。

=TABLE[[#This Row], [SN]]位于当前行和“SN”列的相交部分的单元格。。也可以写成[@SN]

   

本文出自 “郭勇的技术博客” 博客,转载请与作者联系!

以上是关于excel跨表格引用遇到的两个问题?的主要内容,如果未能解决你的问题,请参考以下文章

excel表格中如何把相同一个数值后所对应的所有列数的特定值找出来?解决问题采纳+6元红包

excel表格引用公式的方法步骤

EXCEL中如何引用另一个表格的数据? 如何操作?

EXCEL中如何引用另一个表格的数据? 如何操作?

C# 表格输出 关于引用 Aspose.Cells. 求解答疑惑

Excel表格引用另外一个表的数据,被引用表格不打开,引用表格上就不会显示数据,显示VALUE,急