2

Мне нужно перенести большой лист. Этот лист в свою очередь относится к абсолютным местоположениям на другом листе. Это выглядит так:

       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

Когда я транспонирую через select> Copy> Paste> Transpose, эта часть транспонируется нормально, кроме C5. Я ожидал, что формула останется неизменной: она относится к отдельному листу; он использует абсолютную ссылку; статья MS на http://office.microsoft.com/en-us/excel-help/switch-transpose-columns-and-rows-HP010224502.aspx гласит: «Чтобы убедиться, что формулы продолжают правильно ссылаться на данные в не -транспонированные клетки, используйте абсолютные ссылки в формулах перед тем, как их транспонировать. "

Результат, однако, = «Переменные и источники»!$ D $ 47. Зачем? Есть ли способ решить эту проблему? Я пробовал и Excel 2007 для Windows, и Excel 2008 для Mac.

Я в тупике: рабочий лист большой; Мне нужно перенести это.

2 ответа2

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
0

Попробуйте использовать именованный диапазон / ячейку.

Перейдите в Формулу > Менеджер имен > Новый

Введите предпочитаемое имя, например, " per_client "

В поле "Относится к" введите следующее (не забывайте «=»):

='Variables and sources'!$C$4

В ячейке C5 используйте эту формулу:

=per_client

Переставьте ваш диапазон данных снова.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .