как выбрать ячейку ниже на другом листе, чтобы заполнить ячейку рядом с ячейкой на вашем листе - PullRequest
2 голосов
/ 31 декабря 2011

Мне поручено создать карту нашего склада.

В данных я должен иметь модель, описание и местоположение.

У меня проблемы с тем, что я использую данные со второго листа для заполнения "карты"

т.е. ='1'!F2 когда я пытаюсь перетащить его и использовать для заполнения всей строки, он меняется на ='1'!g2. Я хотел бы перейти на ='1'!F3

Я вижу логику в том, что она делает ... но я не хочу, чтобы она использовала эту логику ... Я хочу, чтобы она использовала следующую ячейку под ней для заполнения этой ячейки.

Ответы [ 2 ]

1 голос
/ 31 декабря 2011

Самым простым может быть скопировать, а затем вставить специальную> перенести данные из «1» на новый лист.Затем вы можете перетащить формулы, которые ссылаются на новый лист, и они будут вести себя как ожидалось.

РЕДАКТИРОВАТЬ: Исходя из вашего исходного вопроса, это будет заполнить результаты столбцов вправо, как вы перетащите его вниз инаоборот.Это буквально делает то, что задал ваш первоначальный вопрос:

=INDEX(Sheet1!$F$2:$Z$8000,COLUMN(),ROW())

Начните с A1 и перетащите в любом направлении.Чтобы добавить строку заголовка или строки влево, просто вставьте строки или столбцы сверху или влево (чтобы сохранить звучание формулы).

РЕДАКТИРОВАТЬ: Вот функция Transpose, согласно предложению @ brettdj.Мне трудно работать, но это, безусловно, проясняет, что происходит:

В ячейках F2: 8000 вашего целевого листа введите:

=TRANSPOSE(Sheet1!$F2:$Z8000)

Затем со всеми этими ячейкамивыбрав, перейдите в режим редактирования в одной из ячеек и выполните Ctrl Shft Enter, чтобы ввести массив.Если вам нужно изменить размер исходного диапазона, я считаю, что вы должны повторить эти шаги с правильными диапазонами.Я сам фанат Index, поэтому буду придерживаться этого.Смещение изменчиво, поэтому я бы его избегал.Если у меня что-то из этого последнего редактирования неверное, @brettdj поможет нам.

0 голосов
/ 31 декабря 2011

Поскольку вы хотите, чтобы поведение не было нативным, возможно, стоит написать небольшой макрос VBA, чтобы выполнить копирование, и назначить его сочетанию клавиш.

Вот простой пример для копирования формулы на одну ячейку вправо с обновлением ссылки на одну ячейку вниз (при этом в настройках сохраняются абсолютные / относительные параметры).
Предполагается адрес в стиле A1, работающий только в том случае, если активная ячейка содержит формулу, ссылающуюся на одну ячейку (завершается без вывода сообщений, если нет). Будет автоматически перезаписывать что-либо в ячейке назначения.

Sub CopyToRight()
    Dim clFrom As Range
    Dim clAddr As Range
    Dim addr As String

    On Error GoTo EH
    Set clFrom = ActiveCell
    If clFrom.Formula Like "=*!*" Then
        Set clAddr = Range(Mid(clFrom.Formula, 2))
        If clAddr.Count = 1 Then
            If clFrom.Formula Like "=*!$*$*" Then
                addr = clAddr.Offset(1, 0).Address(True, True)
            ElseIf clFrom.Formula Like "=*!$**" Then
                addr = clAddr.Offset(1, 0).Address(False, True)
            ElseIf clFrom.Formula Like "=*!*$*" Then
                addr = clAddr.Offset(1, 0).Address(True, False)
            Else
                addr = clAddr.Offset(1, 0).Address(False, False)
            End If
            clFrom.Offset(0, 1).Formula = "='" & clAddr.Worksheet.Name & "'!" & addr 
        End If
    End If
    clFrom.Offset(0, 1).Select
EH:
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...