Problema com a transposição no Excel 2007/2008: o Excel transpõe até referências absolutas

2

Eu preciso transpor uma planilha grande. Esta planilha, por sua vez, refere-se a localizações absolutas na outra planilha. Parece assim:

       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 tem uma fórmula: ='Variables and sources'!$C$4

Quando eu transito via select > Copiar > Colar > Transponha, esta peça é transposta OK, exceto C5. Eu esperava que a fórmula fosse deixada inalterada: refere-se a uma folha separada; usa uma referência absoluta; o artigo do MS no link diz "Para Certifique-se de que as fórmulas continuam a se referir corretamente aos dados em células não transpostas, use referências absolutas nas fórmulas antes de transpô-las. ".

O resultado é = 'Variáveis e fontes'! $ D $ 47. Por quê? Existe alguma maneira de resolver este problema? Eu tentei o Excel 2007 para Windows e o Excel 2008 para Mac.

Estou perplexo: a planilha é grande; Eu preciso transpor isso.

    
por DKroot 13.05.2011 / 17:45

2 respostas

1

Eu tive esse mesmo problema - tão enfurecedor! Eu poderia transpor 2-4 linhas de fórmulas muito bem, mas quaisquer seleções maiores e tudo acabou uma bagunça (ou geralmente cerca de 2-4 linhas na parte inferior dos resultados transpostos seria correto) - tanto quanto eu posso ver isso é apenas um bug gritante!?

Eu tinha folhas com mais de 27.000 células que precisavam ser transpostas - criar intervalos nomeados para cada célula NÃO era uma opção:)

Eu finalmente criei um código bagunçado para fazer linha por linha

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
    
por 02.10.2013 / 18:37
0

Tente usar um intervalo / célula nomeados.

Vá para a Fórmula > Gerenciador de nomes > Novo

Digite seu nome preferido, por exemplo " per_client "

Em "Refere-se a" insira o seguinte (não esqueça do "="):

='Variables and sources'!$C$4

Na célula C5 , use esta fórmula:

=per_client

Transponha seu intervalo de dados novamente.

    
por 20.05.2011 / 17:32