Problema con trasposizione in Excel 2007/2008: Excel traspone anche riferimenti assoluti


2

Devo trasporre un foglio di lavoro di grandi dimensioni. Questo foglio di lavoro a sua volta si riferisce a posizioni assolute sull'altro foglio. Sembra così:

       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 ha una formula: ='Variables and sources'!$C$4

Quando traspongo selezionando> Copia> Incolla> Trasponi, questo pezzo viene trasposto OK, tranne C5. Mi aspettavo che la formula rimanesse invariata: si riferisce a un foglio separato; utilizza un riferimento assoluto; l'articolo MS all'indirizzo http://office.microsoft.com/en-us/excel-help/switch-transpose-columns-and-rows-HP010224502.aspx dice "Per assicurarsi che le formule continuino a fare riferimento correttamente ai dati in non celle trasposte, usa riferimenti assoluti nelle formule prima di trasporle. ".

Il risultato è = "Variabili e fonti"! $ D $ 47. Perché? C'è un modo per risolvere questo problema? Ho provato sia Excel 2007 per Windows che Excel 2008 per Mac.

Sono sconcertato: il foglio di lavoro è grande; Devo trasporlo.

Risposte:


1

Ho avuto lo stesso problema - così esasperante! Potrei trasporre 2-4 righe di formule bene ma tutte le selezioni più grandi e tutto risultava un disastro (o di solito circa 2-4 righe nella parte inferiore dei risultati trasposti sarebbero corrette) - per quanto posso vedere questo è solo un bug lampante !?

Avevo fogli con oltre 27000 celle che dovevano essere trasposte - la creazione di intervalli denominati per ogni cella NON era un'opzione :)

Alla fine ho creato del codice disordinato per farlo linea per linea

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

0

Prova a utilizzare un intervallo / cella denominato.

Vai a Formula > Gestione nomi > Nuovo

Inserisci il tuo nome preferito, ad es. " Per_client "

In "Si riferisce a" inserisci quanto segue (non dimenticare "="):

='Variables and sources'!$C$4

Nella cella C5 , utilizzare questa formula:

=per_client

Trasponi nuovamente il tuo intervallo di dati.


Interessante. Potrebbe essere stata una soluzione. In realtà ho circa 60 variabili definite nel foglio di lavoro "Variabili e fonti". Sono stato in grado di creare nomi in blocco utilizzando Crea da selezione. Tuttavia, il problema è applicare questi nomi. Ogni volta che provo ad applicarli ricevo "Microsoft Excel non riesce a trovare alcun riferimento da sostituire". Ho trovato questo articolo KB su questo problema, ma si applica solo a Excel 2000: support.microsoft.com/kb/268974 . In secondo luogo, quale è lo scopo di names 'scope = Workbook nel mondo se non riesco ad applicare un nome su nessun altro foglio di lavoro?
DKroot,

Assicurati che i riferimenti di cella nel tuo nome includano il nome del foglio. Impostando l'ambito su Cartella di lavoro, il nome può essere utilizzato in tutti gli altri fogli del file, ma non in qualsiasi altra cartella di lavoro aperta. L'impostazione dell'ambito su un singolo foglio significa che è possibile utilizzare solo quel nome all'interno di quel foglio. Per chiamare un nome "locale" da un altro foglio, precederlo con il nome del foglio (es. Foglio 1! MyRange). Per maggiori informazioni: office.microsoft.com/en-us/excel-help/…
Ellesa,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.