如何使用Excel公式将单元格范围从一个工作表引用到另一个工作表?
我有一张单张工作表Sheet1和Sheet2,我试图引用一系列从Sheet2到Sheet1的单元格
我知道如何引用工作表单元格,例如=Sheet2!A1
但是我怎样才能对单元格区域(例如A1:F1
执行相同的操作?我尝试了=Sheet2!A1:F1
但它不喜欢语法。
如果可能,我需要使用Excel公式。
确定了,我下载了一个自定义的连接函数,然后引用它的单元格
码
Function concat(useThis As Range, Optional delim As String) As String ' this function will concatenate a range of cells and return one string ' useful when you have a rather large range of cells that you need to add up Dim retVal, dlm As String retVal = "" If delim = Null Then dlm = "" Else dlm = delim End If For Each cell In useThis if cstr(cell.value)<>"" and cstr(cell.value)<>" " then retVal = retVal & cstr(cell.Value) & dlm end if Next If dlm <> "" Then retVal = Left(retVal, Len(retVal) - Len(dlm)) End If concat = retVal End Function
如果您希望连接来自不同工作表的多个单元格,并且还希望在每个单元格的内容之间添加分隔符,则最直接的方法是:
=CONCATENATE(Sheet1!A4, ", ", Sheet2!A5)
这仅适用于有限数量的引用单元格,但如果您只想要映射这些单元格中的几个,则速度会很快。
你可以把一个相同的公式,然后复制它,以便引用整个范围(一个单元格进入一个单元格)
=Sheet2!A1
如果需要连接结果,则需要更长的公式或用户定义的函数(即macros)。
=Sheet2!A1&Sheet2!B1&Sheet2!C1&Sheet2!D1&Sheet2!E1&Sheet2!F1
简单—
我已经创build了一个带有4个单元的Sheet 2,Sheet 1带有一个带有一个公式的单元:
=SUM(Sheet2!B3:E3)
请注意,按照您的说法进行尝试,将一个单元格分配给一个范围内的值是没有意义的。 发送到一个公式,使用范围来做一些事情。
我重写了Ninja2k提供的代码,因为我不喜欢它通过单元格循环。 为了将来的参考,这里是一个使用数组的版本,它在许多范围上工作速度显着提高,但结果相同:
Function concat2(useThis As Range, Optional delim As String) As String Dim tempValues Dim tempString Dim numValues As Long Dim i As Long, j As Long tempValues = useThis numValues = UBound(tempValues) * UBound(tempValues, 2) ReDim values(1 To numValues) For i = UBound(tempValues) To LBound(tempValues) Step -1 For j = UBound(tempValues, 2) To LBound(tempValues, 2) Step -1 values(numValues) = tempValues(i, j) numValues = numValues - 1 Next j Next i concat2 = Join(values, delim) End Function
我不禁想到肯定有更好的办法
这里是手动没有VBA的步骤,它只适用于1d数组,并使静态值,而不是保留引用:
- 将单元格公式更新为
=Sheet2!A1:A15
- 打F9
- 删除大括号
{ and }
- 将
CONCATENATE(
放在公式的前面(公式前面的公式的前面)
。 - 点击进入 。
如果这些工作表驻留在同一个工作簿中,一个简单的解决scheme是命名该范围,并使公式引用指定的范围。 要命名一个范围,请select它,右键单击,并为其提供一个有意义的名称和工作簿范围。
例如=Sheet1!$A$1:$F$1
可以被命名为: theNamedRange
。 然后你的公式在Sheet2!
可以在你的公式中引用它: =SUM(theNamedRange)
。
顺便说一下,从你的问题来看,你是不是意图使用范围。 如果你把公式中的东西(例如, =SUM(Sheet1!A1:F1)
),它将起作用,你只需要在公式中插入该范围参数。 没有相关的公式,Excel不能parsing范围引用,因为它不知道你想用它做什么。
在这两种方法中,我发现命名范围约定更容易处理。
它很简单,但不容易发现— 去这里阅读更多 。 它来自官方的微软网站
步骤1 – 点击源表格的单元格或范围(包含您要链接的数据)
步骤2按Ctrl + C ,或转到主页选项卡,然后在剪贴板组中单击复制button图像。
步骤3 “ Home
选项卡上的剪贴板组
第4步按Ctrl + V ,或转到主页选项卡,在剪贴板组中,单击粘贴链接button。 默认情况下,粘贴复制的数据时会出现粘贴选项button图像button。
步骤5单击“粘贴选项”button,然后单击“粘贴链接”。
你有的公式很好。 但是,input后,您需要按Ctrl + Shift + Enter才能将其应用于值的范围。 特别:
-
select目标工作表中的值范围。
-
进入配方面板你想要的公式,例如
=Sheet2!A1:F1
-
按Ctrl + Shift + Enter将公式应用于范围。