Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.12.2017, 15:02   #1
0mega
Форумчанин
 
Регистрация: 12.09.2009
Сообщений: 232
Сообщение Месяц по дате из первой занятой строки

С наступающим всех


Sub no

Даты в одномерном массиве располагаются не с первой строки и могут иметь пробелы
Пользователь периодически удаляет некоторые строки (удаление не попорядку) и вся таблица смещается вверх
15.12.17

14.11.17
25.12.17
08.12.17
25.12.17

25.12.17
08.12.17
25.12.17
08.12.17
25.12.17

12.01.18

В любом свободном месте надо составить текстовое наименование месяцев на год (12 шт) при условии что первым месяцеи всегда будет тот который возглавляет массив с датами

В данном случае

Декабрь
Январь
Февраль
Март
Апрель
Май
Июнь
Июль
Август
Сентябрь
Октябрь
Ноябрь
Декабрь
Январь

Если удалить первую запись (15.2.17), тогда список должен начинаться с Ноября
Если удалить и 14.2.17 тоже , тогда первой датой будет 25.12.17 и список будет начинаться с Декабря

В файле приведен конкретный пример
Вложения
Тип файла: xls FirstMonth.xls (41.5 Кб, 14 просмотров)

Последний раз редактировалось 0mega; 21.12.2017 в 15:24.
0mega вне форума Ответить с цитированием
Старый 21.12.2017, 15:18   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от 0mega Посмотреть сообщение
В любом свободном месте надо составить текстовое наименование месяцев на год (12 шт)
Вы уверены, что в вашем примере именно 12 штук месяцев?

Вы хотите это сделать формулами? Или макросом?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.12.2017, 15:44   #3
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Название первого месяца из столбца D
Код:
=ТЕКСТ(ИНДЕКС(D1:D200;ПОИСКПОЗ(1;ИНДЕКС(1-ЕПУСТО(D1:D200);0;1);0));"MMMM")
список же не проблема сделать
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 21.12.2017, 16:02   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Годится!

Цитата:
Сообщение от Aleksandr H. Посмотреть сообщение
Код:
=ТЕКСТ(ИНДЕКС(D1:D200;ПОИСКПОЗ(1;ИНДЕКС(1-ЕПУСТО(D1:D200);0;1);0));"MMMM")
странно, у меня в Excel вместо ваших латинских "MMMM" потребовалось ввести кириллицей "ММММ" (уж не знаю, чем это вызвано o_O)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.12.2017, 16:03   #5
0mega
Форумчанин
 
Регистрация: 12.09.2009
Сообщений: 232
По умолчанию

Serge_Bliznykov здравствуйте



Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение

Вы хотите это сделать формулами? Или макросом?
Формулами

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Вы уверены, что в вашем примере именно 12 штук месяцев?
Даты - это срок оплаты
Если Дата меньше чем СЕГОДНЯ() тогда автоматически присваивается статус "Задолжность" и таблица имеет такую трактовку :
Задолжностность за 15 декабря =100 руб
Оплата на 12 января= 120 руб
Оплата на февраль - 0 руб
Оплата на Март = 0 руб
...


Задолжность всегда возглавляет список и выделена красным цветом .
Задолжность всегда имеет приоритет в оплате .

Поcле погашения долга - оператор удаляет строку с датой 15.12.17
таблица приобретает вид
Оплата на 25 декабря =70 руб
оплата на 12 января = 120 руб
...


Впервые за 6 лет "ноябрь " влез между числами декабря
И при этом надо СНАЧАЛА оплатить долг за 15 дек и если будет возможность - тогда погасить за ноябрь
Совершенно нет необходимости составлять список из из 13-15 месяцев.
В работе всегда 3 мес.

Последний раз редактировалось 0mega; 21.12.2017 в 16:05.
0mega вне форума Ответить с цитированием
Старый 21.12.2017, 16:36   #6
0mega
Форумчанин
 
Регистрация: 12.09.2009
Сообщений: 232
По умолчанию

Цитата:
Сообщение от Aleksandr H. Посмотреть сообщение
список же не проблема сделать
Я даже примерно не предствляю как можно к тексту прибавть число ?!

Но даже если и можно прибавить, то возниккет новая проблемма:
если прибавить "30" тогда мы перешагнем через февраль
Если прибавить "28" тогда Март проявится 2 раза
если привязаться к порядковому номеру
=МЕСЯЦ(ИНДЕКС(D1:D200;ПОИСКПОЗ(1;ИН ДЕКС(1-ЕПУСТО(D1:D200);0;1);0)))+СТРОКА(A1 )-1
Тогда за декабрем будет 13-ый месяц ?!

Последний раз редактировалось 0mega; 21.12.2017 в 16:48.
0mega вне форума Ответить с цитированием
Старый 21.12.2017, 16:47   #7
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

А если немного смыкалки и гугла включить?
https://support.office.com/ru-ru/art...1-757345f7e926
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 21.12.2017, 18:04   #8
0mega
Форумчанин
 
Регистрация: 12.09.2009
Сообщений: 232
По умолчанию

моего серого вещества хватило на
F5=ТЕКСТ(ДАТАМЕС(--(1&F4);1);"ММММ")

Но в F4 формула ломается !
F4 не к чему привязать. У нее нет "фундамента" ?!
=ТЕКСТ(ИНДЕКС(D1:D200;ПОИСКПОЗ(1;ИН ДЕКС(1-ЕПУСТО(D1:D200);0;1);0));"ММММ")


Я хочу в одном столбце 1 (ОДНА) формула

Последний раз редактировалось 0mega; 21.12.2017 в 18:27.
0mega вне форума Ответить с цитированием
Старый 21.12.2017, 22:27   #9
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Прописал в ячейках F4:F17. Смотрится читабельно
Код:
=ТЕКСТ(ДАТАМЕС(ИНДЕКС(D1:D200;ПОИСКПОЗ(1;ИНДЕКС(1-ЕПУСТО(D1:D200);0;1);0));СТРОКА()-4);"MMMM")
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 22.12.2017, 04:40   #10
0mega
Форумчанин
 
Регистрация: 12.09.2009
Сообщений: 232
По умолчанию

благодарю,
это то что хотел
0mega вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на строки. Даны две строки. Определить можно ли из символов первой строки получить вторую строку.( написать подпрограммой и ANTON1994 Паскаль, Turbo Pascal, PascalABC.NET 5 09.02.2013 14:07
по дате рождения и текущей дате (день, месяц, год) определить сколько дней до дня рождения (код на ПАСКАЛЕ) Николай1 Помощь студентам 1 16.02.2012 09:07
выбор из таблицы по дате, за месяц maratmm Microsoft Office Excel 25 25.11.2010 21:39
как прибавить месяц к дате? kate158 Помощь студентам 6 10.11.2010 10:09
Дан файл с различными датами.в дате число,месяц и год.Найти весеннюю дату. JiLiYa Паскаль, Turbo Pascal, PascalABC.NET 1 26.12.2008 15:20