Страницы: 1
RSS
Изменение данных по определенной дате
 
Здравствуйте, уважаемые пользователи данного форума...
Столкнулся с проблемой, а посему надеюсь поможете..и так:
Имеем книгу Exel с несколькими листами, в каждом из которых информация по месяцам, получается 12 листов скажем так..из одного месяца некоторые ячейки перетекают в другой лист..скажем информация по остаткам, формирующаяся на конец месяца...
Далее будет 13 лист этой книги, где будет вводится дата..и в зависимости от того, в какой диапазон эта дата попадет, т.е. январь-1-й лист, февраль-2-й лист и т.п.
будут подставляться в определенные ячейки те значения, которые стояли в нужном листе, выбранном по дате.
Затрудняюсь как это сделать..
Еще момент, нужно как то округлить дату, в плане 1-30 число месяца будет подставляться в нужный лист..
Скажем ввожу 14 февраля..и он начанает черпать данные из определенной ячейки листа 2(т.к. в данном случае лист 2 имеет название февраль), и такой же эффект будет если введу 12,11,10 февраля и т.п.. Соответственно если введу дату 1 января, то данные уже в нужной ячейки будут черпаться из листа Январь. Структура у 12 листов идентичная..т.е. меняются только значения по месяцам..это все..
Как проще это сделать...с функцией просмотра не получается, диапазона как такового нету...данные будут меняться 1 через 6 ячеек скажем так..и так много много)
Заранее спасибо..буду рад если поможете
 
Думаю ДВССЫЛ(), но проверить не не чем, файла нет.
 
Хлипкий пример, но все же)
 
пример какой то бредовый  
Лень двигатель прогресса, доказано!!!
 
Не понял, какие именно данные нужно получить с листов январь...декабрь. Но ссылка на лист в зависимости от даты как-то так делается.
 
vtumane, пример не то, чтобы хлипкий - он вообще никакой. Вы даже поленились на листы-месяцы вставить различные данные. Это просто неуважение к форумчанам - заставлять их придумывать данные.
См. вариант.
 
Приношу глубочайшие извинения и выказываю вам огромный поклон..)
Как вы тут сделали..объясните..чуть доработал пример
 
потрудитесь сделайте нормальный пример что есть в реальности и что хотите получить на сводном листе, по таким примерам желания помогать нет да и не понятно что надо
Лень двигатель прогресса, доказано!!!
 
И вот тут тоже замечательно.. на каждую ячейку такую формулу делать с разными данными ячеек придется, что бы был не деапазон..а именно нужные ячейки.
 
Юрий М идеально понял что требуется..только не знаю как он это сделал:)
 
Цитата
vtumane написал:
.только не знаю как он это сделал:)
Нажмите Alt+F11 откройте модуль листа "Краткая выборка" и увидите как это сделал уважаемый Юрий М.
 
где тут ячейки нужные подвязываются... так понял на этом коде все работает..или не?
Изменено: vtumane - 15.02.2017 08:21:42
 
Цитата
vtumane написал:
где тут ячейки нужные подвязываются...
Нигде, код по номеру месяца даты в ячейке Е2 присваивает переменной sName название этого месяца, затем с листа с таким названием копирует диапазон заполненных ячеек из столбца "А" и вставляет его на тот лист в модуле которого находится данный код.
 
если тупо перенести данные столебца определенного листа по наименованию месяца, то вот формулами
Лень двигатель прогресса, доказано!!!
 
Сергей , Спасибо большое..как нули убрать единственное...будут такие ячейки, где значения то будут, то ячейка будет пустая..и данные все ровно должны перетекать...как то не понятно в примере, где то есть 0, где то нету
 
Цитата
В какой строке тут про столбец а, написано...и как по аналогии добавить скажем столбец B/C/D/E и т.д.
Изменено: vtumane - 15.02.2017 08:22:43
 
vtumane, вам уже несколько раз написали ЖЕЛАЕМЫЙ РЕЗУЛЬТАТ нормальный покажите, и зачем тупо копируете весь код Юрий М,, от модераторов получите нагоняй исправьте свои сообщения пока они не проснулись
Лень двигатель прогресса, доказано!!!
 
vtumane, эта строка определяет последнюю заполненную ячейку в столбце А -
Код
LastRow = .Cells(Rows.Count, 1).End(xlUp).Row 
эта строка копирует диапазон данных с А1 по последнюю заполненную ячейку в столбце А -
Код
.Range(.Cells(1, 1), .Cells(LastRow, 1)).Copy Cells(3, 1) 
что бы копировало например с А1 по последнюю заполненную ячейку столбца B , нужно вот тут .Cells(LastRow, 1)) заменить цифру 1 на цифру 2, если до столбца С то меняем 1 на 3 , ну и по аналогии.

Cells(номер строки, номер столбца) следовательно Cells(1, 1) = A1

Изменено: Александр - 15.02.2017 08:26:43
 
правлю формулу на догадках что хотите последний раз, формула МАССИВА
Код
=ЕСЛИОШИБКА(ИНДЕКС(ДВССЫЛ("'"&ТЕКСТ($E$2;"ММММ")&"'!A1:E100");НАИМЕНЬШИЙ(ЕСЛИ(ЕЧИСЛО(НАЙТИ("Нужная";ДВССЫЛ("'"&ТЕКСТ($E$2;"ММММ")&"'!A1:A100")));СТРОКА($1:$100));СТРОКА(A1));СТОЛБЕЦ(A1));"")
Лень двигатель прогресса, доказано!!!
 
Огромное спасибо, то что вы сделали, очень помогло мне...
Непонятным осталось вот в этой формуле =ИНДЕКС(ДВССЫЛ("'"&ТЕКСТ($E$2;"ММММ")&"'!b:b");СТРОКА('Краткая выборка'!B1))
В зависимости от месяца в ячейке E2 выбирается столбец B соответствующего листа, начиная со строки B1, необходимо внести в нее изменения, касающиеся нулей..как сделать чтобы вместо нулей были скажем просто пустые ячейки...
Спасибо
 
vtumane, Можно сделать так - Файл > Параметры > Дополнительно, в группе   "Показать параметры для следующего листа" уберите галочку возле надписи   "Показывать нули в ячейках, которые содержат нулевые значения"
 
Цитата
Александр написал:
Александр
Вы ваще чудо форумчане..спасибо огромное..Вопрос исчерпан практически..буду подставлять под настоящие данные
Страницы: 1
Читают тему
Наверх