3

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

Есть ли хитрость, чтобы сделать это в MS Excel?

PS: я хочу, чтобы удаленная ячейка была пустой и не заменялась следующей записью.

5 ответов5

7

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

Если это что-то одноразовое, я бы обманул и добавил еще одну колонку под названием что-то вроде even . Затем настройте свои данные так, чтобы они выглядели следующим образом:

value    item    even
10       foo     1
2        bar     2
11       baz     1
13       qux     2

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

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

3

Простой скрипт VBA подойдет. Сохраните копию документа Excel с поддержкой макросов. Создайте макрос, вставьте этот код и нажмите «Выполнить».

Sub DeleteAlternateRow()
    For i = 1 To 4000
        Cells(i, 1).Select
        ActiveCell.EntireRow.Delete
    Next i
End Sub

Примечание: этот макрос удаляет строку 1,3,5, ... если вы хотите начать с удаления второй строки, тогда начните цикл for с 2. Не забудьте сделать копию документа перед запуском макросов

3

В новой колонке (скажем, "X") используйте

=MOD(LINE(X1);2)

и расширить столбец по всему набору. Это должно дать вам чередующуюся последовательность 0 и 1. Теперь автоматически отфильтруйте и выберите только 0 (или 1), затем нажмите «Удалить».

Возможно, вам придется искать локальную версию функций, если вы не используете английский Excel. Например, в Германии это будет REST(ZEILE(X1;2)) . MOD - это функция по модулю, и LINE должен дать вам текущий номер строки.

2

Копирование альтернативных строк данных в столбец

Формула вариант

Начиная с строки 1, для четных позиций:

=INDEX(A:A,1+(2*ROW()-1))

Для странных:

=INDEX(A:A,1+(2*ROW()-2))
1

Скажем, ваши данные в столбце А, вы хотите получать данные только из строк с нечетным числом.

Шаг 1: Нажмите на другой столбец, скажем B.

Шаг 2: В строке 1, столбец B, напишите «= A1».

Шаг 3: Нажмите на эту ячейку, чтобы она загорелась синим цветом.

Шаг 4: Также выберите ячейку под ней, теперь у вас должно быть две ячейки синего цвета B1 и B2.

Шаг 5: Используйте функцию перетаскивания в правом нижнем углу ячейки B2 и перетащите вниз.

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

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