我需要转置一个大型工作表。此工作表反过来引用另一张工作表上的绝对位置。它看起来像这样:
A B C
1 Alternatives Hardware Costs
2 PC desktops / Windows 7
3 Desktops (100%) Number 123
4 Capital expenses $123,456
5 Per client $789
C5 有一个公式:='Variables and sources'!$C$4
当我通过选择 > 复制 > 粘贴 > 转置进行转置时,此乐段转置正常,C5 除外。我期望公式保持不变:它引用单独的工作表;它使用绝对引用;MS 文章http://office.microsoft.com/en-us/excel-help/switch-transpose-columns-and-rows-HP010224502.aspx说“为了确保公式继续正确引用非转置单元格中的数据,请在转置之前在公式中使用绝对引用。”。
但结果是 ='Variables and sources'!$D$47。为什么?有什么办法可以解决这个问题吗?我尝试了适用于 Windows 的 Excel 2007 和适用于 Mac 的 Excel 2008。
我很困惑:工作表很大;我确实需要转置它。
答案1
我也遇到过同样的问题 - 太气人了!我可以顺利转置 2-4 行公式,但任何更大的选择都会变得一团糟(或者通常转置结果底部的 2-4 行是正确的) - 据我所知,这只是一个明显的错误!?
我的工作表中有超过 27000 个单元格需要转置 - 为每个单元格创建命名范围不是一个选择:)
我最终创建了一些混乱的代码来逐行执行
Sub transpose()
' gummih transpose, takes individual columns and pastes as rows
Dim firstLine As Integer
Dim lastLine As Integer
Dim lineToStartPasting as Integer
Dim cols As Integer
firstLine = 2
lastLine = 80
lineToStartPasting = 89 'pasting starts at "A90"
For cols = 1 To 100
Range(ActiveSheet.Cells(firstLine , cols ), ActiveSheet.Cells(lastLine , cols )).Select
Selection.Copy
ActiveSheet.Cells(lineToStartPasting + cols , 1).Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, transpose:=True
Next cols
End Sub
答案2
尝试使用命名的范围/单元格。
去公式>姓名经理>新的
输入您喜欢的名字,例如“每个客户端“
在“引用”中输入以下内容(不要忘记“=”):
='Variables and sources'!$C$4
在细胞内C5,使用以下公式:
=per_client
再次转置您的数据范围。