Как автоматически вставить пустую строку после группы данных
Ниже я создал пример таблицы, которая достаточно похожа на мою таблицу в 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, строка 2 (предположим, что это A2)
- Поместите эту формулу в A3
=IF(B3=B2,A2,A2+1)
и скопируйте + вставьте эту формулу для оставшейся части столбца 2 - Затем скопируйте и вставьте все значения из столбца 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 до 1000 (при условии, что есть 1000 строк)
- Скопируйте ключевое поле на другой лист и удалите дубликаты
- Скопируйте уникальные элементы строки на основной лист после 1000-й записи
- В столбце "Контроль" добавьте число 1001 ко всем уникальным записям.
- Сортировка данных (включая добавленные записи) сначала по ключевому полю, а затем по "Контролю"
- Добавлена пустая строка (с данными в ключевом поле и 'Control')
У меня есть большой файл в Excel, посвященный покупке и продаже паев взаимных фондов. Количество строк в листе превышает 4000. У меня нет опыта работы с VBA, и я хотел бы работать с базовым Excel. Воспользовавшись предложенными выше решениями, я попытался решить проблему (автоматически вставить пустые строки) следующим образом:
- Я отсортировал мой файл по контрольным полям
- Я добавил колонку в файл
- Я использовал функцию "ЕСЛИ", чтобы определить, когда происходит изменение в контрольных данных.
- Если есть изменение, результат будет указывать "да", в противном случае "нет"
- Затем я отфильтровал данные, чтобы сгруппировать все элементы "да"
- Я скопировал имена взаимных фондов, номер фолио и т. Д. (Без финансовых данных)
- Затем я удалил фильтр и снова отсортировал файл. Результат - строка, добавленная в нужном месте. (Это не совсем пустая строка, потому что, если она полностью пуста, сортировка не поместит строку в нужное место.)
- После сортировки вы можете легко удалить все значения, чтобы получить полностью пустую строку.
Этот метод также может быть опробован читателями.