Иметь пару сотен тысяч строк данных о транзакциях за 4 года. Нужны полные данные в столбце даты, но для всех последующих транзакций (возможно, сотен) в этот день вводится только одна дата ... Мне нужно поместить дату в каждую строку, чтобы я мог сортировать, поворачивать и т.д., Но, очевидно, не хочу вручную копировать и вставлять до 1000 различных дат в ячейки размером почти 300 тыс. Может быть, новый столбец с оператором if/then, который вводит дату рядом, если не пусто, и пропускает вверх к следующей непустой ячейке и вводит эту дату, если она пуста, но я не знаю, как это сделать.
2 ответа
Сценарий, когда вспомогательные столбцы не скрыты:
Сценарий, когда вспомогательные столбцы скрыты:
Я предполагаю, что у вас есть исходные данные в диапазоне A3:B12
.
Как это устроено:
В столбце «Помощник» 1 напишите эту формулу в ячейке
D3
и заполните.=INDEX(A3,1,1)
В столбце «Помощник» 2 напишите эту формулу в ячейке
E3
и заполните.=COUNTIF($D$3:$D3,D3)
В ячейке
F3
напишите эту формулу и заполните ее, чтобы сгенерировать даты.=IF(D3=D2,"",D3)
Запишите эту формулу массива в ячейке
H3
и заполните.{=INDEX($B$3:$B$12, SMALL(IF($D3=$A$3:$A$12, ROW($A$3:$A$12)-MIN(ROW($A$3:$A$12))+1, ""), E3))}
Замечания:
- Завершите формулу массива с помощью
Ctrl+Shift+Enter
. - При необходимости измените ссылки на ячейки в формуле.
Формула, которую вы можете использовать, очень проста, именно так, как вы описали ее в своем вопросе. Просто для иллюстрации, давайте предположим, что ваши данные с датами начинаются в A1.
- Добавьте одну дополнительную колонку (B).
- В ячейку B1 скопируйте содержимое ячейки A1:
=A1
- В ячейку B2 поместите
=IF(A2="";B1;A2)
- Теперь вы можете скопировать формулу в B2 до конца ваших данных
Это будет работать на основе двух условий:
(1) ваши данные должны быть отсортированы по дате (очевидно)
(2) когда нет даты, ячейка должна быть пустой (поэтому test =""
возвращает TRUE
. Если ячейка содержит другие символы (пробелы или другие невидимые символы), вы должны сделать тест немного более сложным.