我有一张工作表,其中包含Sheet1和Sheet2,我试图引用从Sheet2到Sheet1的一系列单元格
我知道如何引用工作表单元格,例如=Sheet2!A1
,但我如何对A1:F1
我尝试=Sheet2!A1:F1
的单元格区域执行相同操作,但它不喜欢语法。
如果可能,我需要使用Excel公式。
答案 0 :(得分:6)
简单---
我创建了一个包含4个单元格的Sheet 2和一个包含公式的单个单元格的Sheet 1:
=SUM(Sheet2!B3:E3)
注意,按照您的说法进行尝试,为单个单元格指定一个范围内的值是没有意义的。将其发送到使用范围对其执行某项操作的公式。
答案 1 :(得分:3)
好的,我下载了一个自定义连接函数,然后只引用了它的单元格
<强>代码强>
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
答案 2 :(得分:3)
如果您希望连接不同工作表中的多个单元格,并且还希望在每个单元格的内容之间添加分隔符,则最直接的方法是:
=CONCATENATE(Sheet1!A4, ", ", Sheet2!A5)
这仅适用于有限数量的引用单元格,但如果您只想要映射的这些单元格很少,则速度很快。
答案 3 :(得分:2)
你可以使用相同的公式,然后复制它以便引用整个范围(一个单元格进入一个单元格)
=Sheet2!A1
如果需要连接结果,则需要更长的公式或用户定义的函数(即宏)。
=Sheet2!A1&Sheet2!B1&Sheet2!C1&Sheet2!D1&Sheet2!E1&Sheet2!F1
答案 4 :(得分:2)
你拥有的公式很好。但是,输入后,您需要点击 Control + Shift + Enter ,以便将其应用于值范围。具体做法是:
选择目标表格中的值范围。
在公式面板中输入您想要的公式,例如=Sheet2!A1:F1
点击控制 + Shift + 输入以将公式应用于范围。
答案 5 :(得分:1)
如果这些工作表位于同一工作簿中,则一个简单的解决方案是命名范围,并使公式引用命名范围。要命名范围,请选择它,右键单击,并为其提供带有工作簿范围的有意义的名称。
例如,=Sheet1!$A$1:$F$1
可以命名为:theNamedRange
。然后,Sheet2!
上的公式可以在您的公式中引用它:=SUM(theNamedRange)
。
顺便提一下,您的问题并不清楚您打算如何使用该系列。如果你把你在公式中的内容(例如=SUM(Sheet1!A1:F1)
)放在它上面就可以了,你只需要在公式中插入那个范围参数。如果没有相关的公式,Excel不会解析范围引用,因为它不知道你想用它做什么。
在这两种方法中,我发现命名范围约定更容易使用。
答案 6 :(得分:1)
我重写了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的情况下手动执行此操作的步骤,该VBA仅适用于1d数组并生成静态值而不是保留引用:
=Sheet2!A1:A15
{ and }
CONCATENATE(
符号和公式末尾的=
之后,将)
放在公式的前面。答案 7 :(得分:1)
它非常简单但不易发现--- Go here to read more。它来自官方微软网站
第1步 - 单击源表单的单元格或范围(包含要链接到的数据)
第2步 按 Ctrl + C ,或转到“主页”选项卡,然后在“剪贴板”组中,单击“复制按钮图像”。
第3步
Home
标签上的剪贴板组
第4步 按 Ctrl + V ,或转到“主页”选项卡,在“剪贴板”组中,单击“粘贴链接按钮”。默认情况下,粘贴复制数据时会出现“粘贴选项按钮”图像按钮。
第5步 单击“粘贴选项”按钮,然后单击“粘贴链接”。