Доброго времени суток, уважаемые гении. Прошу у Вас помощи в переносе дат на другой лист, с определенными условиями.
Суть такова: из листа "даты" перекинуть даты (B) в желтые колонки (лист "общее" K:V), в соответствии с названием месяца (в колонку январь переносятся только январские даты и т.д.), но поиск должен производится по ФИО (лист "общее" B:C и лист "даты" D) (поиск полностью по ФИО, так как много клиентов с одинаковыми фамилиями и именами), даты должны перекидываться, только если оказана услуга "сопровождение" (M) и не должны учитываться даты, имеющие любой статус, то есть только пустые строчки в колонке статус (N).
Получается, что с обоих листов сравниваются фамилии, например, "Иванов Иван Иванович"(D) и если ему оказано "сопровождение" (M), и у него нет статуса (N), то его дата (B) переносится в соответствующую колонку месяца (лист "общее" K-V). Если у Мандариновой Ольги Сергеевны, есть сопровождение, но в статусе стоит "отказ", то дата не переносится.
Доброго времени суток, уважаемые гении. Прошу у Вас помощи в переносе дат на другой лист, с определенными условиями.
Суть такова: из листа "даты" перекинуть даты (B) в желтые колонки (лист "общее" K:V), в соответствии с названием месяца (в колонку январь переносятся только январские даты и т.д.), но поиск должен производится по ФИО (лист "общее" B:C и лист "даты" D) (поиск полностью по ФИО, так как много клиентов с одинаковыми фамилиями и именами), даты должны перекидываться, только если оказана услуга "сопровождение" (M) и не должны учитываться даты, имеющие любой статус, то есть только пустые строчки в колонке статус (N).
Получается, что с обоих листов сравниваются фамилии, например, "Иванов Иван Иванович"(D) и если ему оказано "сопровождение" (M), и у него нет статуса (N), то его дата (B) переносится в соответствующую колонку месяца (лист "общее" K-V). Если у Мандариновой Ольги Сергеевны, есть сопровождение, но в статусе стоит "отказ", то дата не переносится.Lich
Вы уверены, что вопрлос именно по VBA? Все что описано, если конечно все понял правильно, то делается может и не элементарными, но формулами. Единственное, желательно на листе общее колонки с месяцами именовать немного по другому. на отображении не отразится. Ну или дополнительный заголовок скрытый сделать.
Lich,
Вы уверены, что вопрлос именно по VBA? Все что описано, если конечно все понял правильно, то делается может и не элементарными, но формулами. Единственное, желательно на листе общее колонки с месяцами именовать немного по другому. на отображении не отразится. Ну или дополнительный заголовок скрытый сделать.bmv98rus
Замечательный Временно просто медведь , процентов на 20.
bmv98rus, звучит слишком сложно, потому и подумал, что сюда, я не против формул, лишь бы работало. Не проблема, можно и переименовать или столбец создать. Kuzmich, да, год всегда одинаковый. Для каждого года создается отдельный лист "даты", но лист "общее" всегда один
bmv98rus, звучит слишком сложно, потому и подумал, что сюда, я не против формул, лишь бы работало. Не проблема, можно и переименовать или столбец создать. Kuzmich, да, год всегда одинаковый. Для каждого года создается отдельный лист "даты", но лист "общее" всегда одинLich
По идее вам просто сводная таблица подойдет. если конечно имена детей не принципиальны. 5 мин. подождите. в это сообщение выложу. Вот только пример с Мандаринова Ольга Сергеевна показателе. в августе там аж 4 строки подходящих под условие, вы какую дату хотите получить?
Lich,
По идее вам просто сводная таблица подойдет. если конечно имена детей не принципиальны. 5 мин. подождите. в это сообщение выложу. Вот только пример с Мандаринова Ольга Сергеевна показателе. в августе там аж 4 строки подходящих под условие, вы какую дату хотите получить?bmv98rus
Замечательный Временно просто медведь , процентов на 20.
Сообщение отредактировал bmv98rus - Суббота, 07.01.2017, 13:41
Можно попробовать, просто когда заполнена только колонка С, значит у ребенка нет родителей, которые являлись бы его ЗП и значит в листе "даты" прописываю его фамилию и ссылка идет на него. Если это не будет проблемой, тогда всё супер.
Можно попробовать, просто когда заполнена только колонка С, значит у ребенка нет родителей, которые являлись бы его ЗП и значит в листе "даты" прописываю его фамилию и ссылка идет на него. Если это не будет проблемой, тогда всё супер.Lich
Kuzmich, нет, считается чисто "сопровождение" без статуса, в оригинале статус - это когда клиентов дома не было и другие проволочки, потому услуг мы не оказали и они считаться не должны. То есть только сопровождение, а в статусе пустая ячейка.
Kuzmich, нет, считается чисто "сопровождение" без статуса, в оригинале статус - это когда клиентов дома не было и другие проволочки, потому услуг мы не оказали и они считаться не должны. То есть только сопровождение, а в статусе пустая ячейка.Lich
В сводной фамилии детей не делал, это для примера. Ну и колонки проименовал. Выбирайте что нравится.
на общее менять нужно только дату первого месяца.
Но это по быстрому, по гормлаьному можно оптимизировать длинную формулу, а если гарантия есть что нет повторов, то можно раза в два её сократить сразу.
Lich,
В сводной фамилии детей не делал, это для примера. Ну и колонки проименовал. Выбирайте что нравится.
на общее менять нужно только дату первого месяца.
Но это по быстрому, по гормлаьному можно оптимизировать длинную формулу, а если гарантия есть что нет повторов, то можно раза в два её сократить сразу.bmv98rus
Посмотрите макрос, в стандартный модуль, запускать при активном листе "общее" [vba]
Код
Sub iSumma() Dim i As Long Dim iLastRow As Long Dim FoundFIO As Range Dim FAdr As String Dim Stolb As Integer Dim iMonth As Integer iLastRow = Cells(Rows.Count, "B").End(xlUp).Row Range("K2:V" & iLastRow).ClearContents With Worksheets("даты") For i = 2 To iLastRow Set FoundFIO = .Columns(4).Find(Split(Cells(i, "B"), ",")(0), , xlValues, xlWhole) If Not FoundFIO Is Nothing Then FAdr = FoundFIO.Address Do If .Cells(FoundFIO.Row, "M") = "сопровождение" Then If IsEmpty(.Cells(FoundFIO.Row, "N")) Then 'Or .Cells(FoundFIO.Row, "N") = "принятие" iMonth = Month(.Cells(FoundFIO.Row, "B")) Select Case iMonth Case "1" Stolb = 11 Case "2" Stolb = 12 Case "3" Stolb = 13 Case "4" Stolb = 14 Case "5" Stolb = 15 Case "6" Stolb = 16 Case "7" Stolb = 17 Case "8" Stolb = 18 Case "9" Stolb = 19 Case "10" Stolb = 20 Case "11" Stolb = 21 Case "12" Stolb = 22 End Select Cells(i, Stolb) = .Cells(FoundFIO.Row, "B") End If End If Set FoundFIO = .Columns(4).FindNext(FoundFIO) Loop While FoundFIO.Address <> FAdr End If Next End With End Sub
[/vba]
Посмотрите макрос, в стандартный модуль, запускать при активном листе "общее" [vba]
Код
Sub iSumma() Dim i As Long Dim iLastRow As Long Dim FoundFIO As Range Dim FAdr As String Dim Stolb As Integer Dim iMonth As Integer iLastRow = Cells(Rows.Count, "B").End(xlUp).Row Range("K2:V" & iLastRow).ClearContents With Worksheets("даты") For i = 2 To iLastRow Set FoundFIO = .Columns(4).Find(Split(Cells(i, "B"), ",")(0), , xlValues, xlWhole) If Not FoundFIO Is Nothing Then FAdr = FoundFIO.Address Do If .Cells(FoundFIO.Row, "M") = "сопровождение" Then If IsEmpty(.Cells(FoundFIO.Row, "N")) Then 'Or .Cells(FoundFIO.Row, "N") = "принятие" iMonth = Month(.Cells(FoundFIO.Row, "B")) Select Case iMonth Case "1" Stolb = 11 Case "2" Stolb = 12 Case "3" Stolb = 13 Case "4" Stolb = 14 Case "5" Stolb = 15 Case "6" Stolb = 16 Case "7" Stolb = 17 Case "8" Stolb = 18 Case "9" Stolb = 19 Case "10" Stolb = 20 Case "11" Stolb = 21 Case "12" Stolb = 22 End Select Cells(i, Stolb) = .Cells(FoundFIO.Row, "B") End If End If Set FoundFIO = .Columns(4).FindNext(FoundFIO) Loop While FoundFIO.Address <> FAdr End If Next End With End Sub
Спасибо огромное за оба варианта, сводная таблица очень понравилась, буду в ней разбираться, только еще вопрос, можно ли сделать, чтобы выводились все даты выезда в столбик, а не одна? Чтобы сразу видно было сколько раз к кому в месяц попали.
Спасибо огромное за оба варианта, сводная таблица очень понравилась, буду в ней разбираться, только еще вопрос, можно ли сделать, чтобы выводились все даты выезда в столбик, а не одна? Чтобы сразу видно было сколько раз к кому в месяц попали.Lich
bmv98rus, столбик на скрине. Если бы можно было сделать такое в сводной таблице было бы просто супер, потому что такая таблица пригодится, очень удобно.
bmv98rus, столбик на скрине. Если бы можно было сделать такое в сводной таблице было бы просто супер, потому что такая таблица пригодится, очень удобно.Lich
bmv98rus, благодарствую, выглядит нереально и мощно, а с моими 148 клиентами будет вообще масштабно. Пойду разбираться, а не то заинтересовала тема сводной таблицы. Надо изучить ее. Здоровья всем.
bmv98rus, благодарствую, выглядит нереально и мощно, а с моими 148 клиентами будет вообще масштабно. Пойду разбираться, а не то заинтересовала тема сводной таблицы. Надо изучить ее. Здоровья всем.Lich
Lich, "Используй то, что под рукою и не ищи себе другое!" только не забывайте, что сводную надо обновлять, при изменении данных она сама не пересчитается.
Lich, "Используй то, что под рукою и не ищи себе другое!" только не забывайте, что сводную надо обновлять, при изменении данных она сама не пересчитается.bmv98rus
Замечательный Временно просто медведь , процентов на 20.