Как автоматически вставить пустую строку после группы данных

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

_

ТЕКУЩИЙ СТОЛ:

column1   |   column2   |  column3
----------------------------------
  A       |     small   |  blue
  A       |     small   |  orange
  A       |     small   |  yellow
  B       |     med     |  yellow
  B       |     med     |  blue
  C       |     large   |  green
  D       |     large   |  green
  D       |     small   |  pink

_

Желаемый стол

Примечание: пустая строка после каждого отдельного столбца1

column1   |   column2   |  column3
----------------------------------
  A       |     small   |  blue
  A       |     small   |  orange
  A       |     small   |  yellow

  B       |     med     |  yellow
  B       |     med     |  blue

  C       |     large   |  green

  D       |     large   |  green
  D       |     small   |  pink

7 ответов

Решение

Это делает именно то, что вы просите, проверяет строки и вставляет пустую пустую строку при каждом изменении в столбце A:

sub AddBlankRows()
'
dim iRow as integer, iCol as integer
dim oRng as range

set oRng=range("a1")

irow=oRng.row
icol=oRng.column

do 
'
if cells(irow+1, iCol)<>cells(irow,iCol) then
    cells(irow+1,iCol).entirerow.insert shift:=xldown
    irow=irow+2
else
    irow=irow+1
end if
'
loop while not cells (irow,iCol).text=""
'
end sub

Я надеюсь, что вы начали, дайте нам знать!

Филипп

Выберите свой массив, включая метки столбцов, DATA > Outline -Subtotal, При каждом изменении в: column1, Использовать функцию: Count, Добавить промежуточный итог к: column3, установите флажок Заменить текущие промежуточные итоги и Сводка под данными, OK.

Выберите "Столбец1", "Текстовые фильтры", "Содержит...", "Счетчик" и "ОК". Выделите все видимые, кроме ярлыков, и удалите содержимое. Удалить фильтр и, при желании, разгруппировать строки.

Догадаться.

Шаг 1

Поместите новый столбец слева от column1 и скопируйте + вставьте следующую формулу

= В2= В3

= В3= В4

= B4 = B5

... до самого дна (предположим, что столбец B здесь - это column1 в исходном вопросе).

Эта формула оценивает, является ли следующая строка новым значением в column1. В зависимости от результата у вас будет ИСТИНА или ЛОЖЬ. Скопируйте и вставьте эти результаты как значения, а затем поменяйте местами "ЛОЖЬ" на ноль и "ИСТИНА" на 0.5

Шаг 2

Затем добавьте этот столбец, заполненный только 0,5, в column1, что приведет к следующей таблице:

  newcolumn0  |   column1 ("B") |   column2   |  column3
-----------------------------------------------------
              |     1           |     small   |  blue
              |     1           |     small   |  orange
      1.5     |     1           |     small   |  yellow
              |     2           |     med     |  yellow
      2.5     |     2           |     med     |  blue
      3.5     |     3           |     large   |  green
              |     4           |     large   |  green
      4.5     |     4           |     small   |  pink

Шаг 3

Наконец, скопируйте и вставьте значения из newcolumn0 прямо под значениями в column1, а затем отсортируйте таблицу по column1, и у вас должна быть пустая строка между каждым отдельным целым числом в column1, с таблицей примерно так:

    newcolumn0   |  column1 ("B")  |   column2       |  column3
---------------------------------------------------------------
                 |     1           |     small   |  blue
                 |     1           |     small   |  orange
        1.5      |     1.5         |             |
                 |     1           |     small   |  yellow
                 |     2           |     med     |  yellow
                 |     2           |     med     |  blue
        2.5      |     2.5         |             |
                 |     3           |     large   |  green
        3.5      |     3.5         |             |
                 |     4           |     large   |  green
                 |     4           |     small   |  pink
        4.5      |     4.5         |             |

Альтернативные решения (до сих пор нет VBA)

  1. Поместите значение 1 столбец 1, строка 2 (предположим, что это A2)
  2. Поместите эту формулу в A3 =IF(B3=B2,A2,A2+1) и скопируйте + вставьте эту формулу для оставшейся части столбца 2
  3. Затем скопируйте и вставьте все значения из столбца 1 в новый лист Temp Excel, удалите дубликаты, затем добавьте 0,5 ко всем числам, затем вставьте эти значения под значениями в исходной электронной таблице под данными в столбце 1, вставьте все данные в столбце как значения, а затем отсортировать по этому столбцу, удалите временную таблицу Excel

Это не будет работать, если данные не последовательные (1 2 3 4, но 5 7 3 1 5), так как в этом случае вы не можете их отсортировать.

Вот как я решаю эту проблему для меня:

Столбец Исходные данные, которые должны содержать 5 строк между каждым числом - 5 4 6 8 9

Столбец B - 1 2 3 4 5 (последнее число представляет количество пустых строк, которое должно быть между числами в столбце A) скопируйте и вставьте 1-5 в столбец B, если у вас есть числа в столбце A.

Перейти к столбцу D, в D1 типа 1. В D2 введите эту формулу - =IF(B2=1,1+D1,D1)Перетащите его на ту же длину, что и столбец B.

Вернуться к столбцу C - для типа ячейки C1 эта формула - =IF(B1=1,INDIRECT("a"&(D1)),""), Перетащите его вниз, и мы сделали. Теперь в столбце C мы имеем ту же последовательность чисел, что и в столбце A, распределенную отдельно на 4 строки.

Просто идея, если вы знаете категории, как малые, средние и большие, упомянутые выше...

В нижней части листа сделайте 3 строки, которые говорят только о маленьком, среднем и большом, замените шрифт на белый, а затем отсортируйте по алфавиту, поместив пустую строку между каждым разделом.

  1. Вставьте столбец слева от таблицы "Контроль"
  2. Пронумеруйте данные от 1 до 1000 (при условии, что есть 1000 строк)
  3. Скопируйте ключевое поле на другой лист и удалите дубликаты
  4. Скопируйте уникальные элементы строки на основной лист после 1000-й записи
  5. В столбце "Контроль" добавьте число 1001 ко всем уникальным записям.
  6. Сортировка данных (включая добавленные записи) сначала по ключевому полю, а затем по "Контролю"
  7. Добавлена ​​пустая строка (с данными в ключевом поле и 'Control')

У меня есть большой файл в Excel, посвященный покупке и продаже паев взаимных фондов. Количество строк в листе превышает 4000. У меня нет опыта работы с VBA, и я хотел бы работать с базовым Excel. Воспользовавшись предложенными выше решениями, я попытался решить проблему (автоматически вставить пустые строки) следующим образом:

  1. Я отсортировал мой файл по контрольным полям
  2. Я добавил колонку в файл
  3. Я использовал функцию "ЕСЛИ", чтобы определить, когда происходит изменение в контрольных данных.
  4. Если есть изменение, результат будет указывать "да", в противном случае "нет"
  5. Затем я отфильтровал данные, чтобы сгруппировать все элементы "да"
  6. Я скопировал имена взаимных фондов, номер фолио и т. Д. (Без финансовых данных)
  7. Затем я удалил фильтр и снова отсортировал файл. Результат - строка, добавленная в нужном месте. (Это не совсем пустая строка, потому что, если она полностью пуста, сортировка не поместит строку в нужное место.)
  8. После сортировки вы можете легко удалить все значения, чтобы получить полностью пустую строку.

Этот метод также может быть опробован читателями.

Другие вопросы по тегам