У меня есть рабочая книга W1, которая содержит таблицу W1T1. Один столбец (путем ввода буквы «x») сигнализирует, что этот ряд W1T1Rx должен быть скопирован в другую рабочую книгу W2.

W2 содержит таблицу W2T1, в которой есть несколько столбцов, идентичных W1T1. Эти столбцы должны быть автоматически заполнены (потому что где-то в W1T1 есть строка «x»). Кроме того, в W2T1 есть столбцы, в которые пользователь вводит пользовательские значения в ответ на автоматически заполненные столбцы.

Для этого я использовал комбинацию функций INDEX и LARGE, которые хорошо работают.

Теперь, после того как пользовательская информация заполнена, Excel должен обработать строку W2T1Rx как связанную между столбцами. Прямо сейчас, если другая строка W1T1Rx помечена 'x', в зависимости от относительного положения этой строки в W1T1 она будет помещена где-то между другими строками W2T1Rx и необязательно добавлена в конце W2T1 (поведение, вызванное функция БОЛЬШАЯ).

Это приводит к тому, что некоторые уже существующие строки W2T1Rx перемещаются вниз, при этом также не перемещая пользовательскую информацию, связанную с этой строкой. Кроме того, удаление «x» в W1T1Rx приводит к удалению строки в W2T1, что впоследствии перемещает строки W2T1Rx вверх, снова без перемещения неавтоматизированных ячеек.

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

Есть идеи, как это решить?

VBA приветствуется, хотя не VBA является предпочтительным.

1 ответ1

0

Я хотел бы предложить нижеприведенные формулы для заполнения таблицы 2 на листе 2.

Но позвольте мне проиллюстрировать сценарий, который я использовал для проверки формул.

  1. Лист 1 содержит данные в диапазоне A2:E50.

  2. На Листе 2 в ячейке A1 напишите X (Критерии).

  3. На листе 2 в ячейке A2 напишите эту формулу и перетащите вниз до максимума.

    = IF (Лист1!А2 = $ A $ 1, СТРОКА (), "")

  4. Напишите ниже написанную формулу в ячейке B2 листа 2

    = IF (РЯДЫ ($ 1:1)> COUNT ($ A:$ A), "", INDEX (Лист2!В:В, МАЛОМ ($ A:$ A, ЧСТРОКИ ($ 1:1))))

  5. Перетащите формулу до столбца E и вниз до максимального количества строк.

NB. Вы обнаружите, что все записи будут перенесены на лист 2, который начинается с X в столбце A с листа 1.

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

Обратите внимание, измените диапазон данных, как вам нужно.

Надеюсь, это поможет вам.

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