Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Поиск клиента за определенный промежуток - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Поиск клиента за определенный промежуток (Формулы/Formulas)
Поиск клиента за определенный промежуток
Keks Дата: Понедельник, 07.05.2018, 15:51 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Добрый день!
Прошу совета по экселю. Есть данные за период 01.04 по 30.04.2018 посещение ресурса клиента. Нужно по индивидуальному ID вычислить за определенный промежуток времени в какие дни был произведен вход.
Дано:
лист 1 ФИО, индивидуальный ID, дата начала, дата окончания.
лист 2 дата и время, индивидуальный ID.
Задача:
Найти и подставить в (столбец Е) сколько раз клиент посещал за определенный период с даты начала(столбец С) по дату окончания(столбец D). Лист2 данные посещения за период 01.04 по 30.04.2018.
Если подымалась аналогичная тема, прошу дать ссылку.
Пример в файле.
Спасибо.
К сообщению приложен файл: 6051294.xlsx(16.2 Kb)


Сообщение отредактировал Keks - Понедельник, 07.05.2018, 15:52
 
Ответить
СообщениеДобрый день!
Прошу совета по экселю. Есть данные за период 01.04 по 30.04.2018 посещение ресурса клиента. Нужно по индивидуальному ID вычислить за определенный промежуток времени в какие дни был произведен вход.
Дано:
лист 1 ФИО, индивидуальный ID, дата начала, дата окончания.
лист 2 дата и время, индивидуальный ID.
Задача:
Найти и подставить в (столбец Е) сколько раз клиент посещал за определенный период с даты начала(столбец С) по дату окончания(столбец D). Лист2 данные посещения за период 01.04 по 30.04.2018.
Если подымалась аналогичная тема, прошу дать ссылку.
Пример в файле.
Спасибо.

Автор - Keks
Дата добавления - 07.05.2018 в 15:51
_Boroda_ Дата: Понедельник, 07.05.2018, 16:15 | Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 12749
Репутация: 5227 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Максим, Вы уж определитесь как-нибудь, Вам что нужно?

в какие дни был произведен вход
или
сколько раз клиент посещал за определенный период

Сколько раз вот так можно
Код
=СУММПРОИЗВ((Лист2!B$1:B$999=B2)*(Лист2!A$1:A$999>=C2)*(Лист2!A$1:A$999<=D2))

В какие дни - это макрос писать нужно


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеМаксим, Вы уж определитесь как-нибудь, Вам что нужно?

в какие дни был произведен вход
или
сколько раз клиент посещал за определенный период

Сколько раз вот так можно
Код
=СУММПРОИЗВ((Лист2!B$1:B$999=B2)*(Лист2!A$1:A$999>=C2)*(Лист2!A$1:A$999<=D2))

В какие дни - это макрос писать нужно

Автор - _Boroda_
Дата добавления - 07.05.2018 в 16:15
pabchek Дата: Понедельник, 07.05.2018, 16:22 | Сообщение № 3
Группа: Проверенные
Ранг: Ветеран
Сообщений: 883
Репутация: 213 ±
Замечаний: 0% ±

Excel 2007
Здравствуйте!
Может сводная поможет?
К сообщению приложен файл: 0520092.xlsx(27.0 Kb)


"Учиться, учиться и еще раз учиться!"
WM: R399923528092
 
Ответить
СообщениеЗдравствуйте!
Может сводная поможет?

Автор - pabchek
Дата добавления - 07.05.2018 в 16:22
Keks Дата: Понедельник, 07.05.2018, 16:32 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Я не правильно поставил вопрос.
мне нужно узнать по ID(логину) когда были произведен вход в период с 16.04.2018 29.04.2018 до и после нужно отсекать.
И так по каждому ID.


Сообщение отредактировал Keks - Понедельник, 07.05.2018, 16:34
 
Ответить
СообщениеЯ не правильно поставил вопрос.
мне нужно узнать по ID(логину) когда были произведен вход в период с 16.04.2018 29.04.2018 до и после нужно отсекать.
И так по каждому ID.

Автор - Keks
Дата добавления - 07.05.2018 в 16:32
pabchek Дата: Понедельник, 07.05.2018, 16:44 | Сообщение № 5
Группа: Проверенные
Ранг: Ветеран
Сообщений: 883
Репутация: 213 ±
Замечаний: 0% ±

Excel 2007
до и после нужно отсекать

тогда может так?
К сообщению приложен файл: 4747625.xlsb(29.2 Kb)


"Учиться, учиться и еще раз учиться!"
WM: R399923528092
 
Ответить
Сообщение
до и после нужно отсекать

тогда может так?

Автор - pabchek
Дата добавления - 07.05.2018 в 16:44
Keks Дата: Понедельник, 07.05.2018, 17:04 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Уже ближе, но у каждого ID свой интервал времени в столбце С и D, для каждого ID и нужно вычислить в его периоде входил или не входил.
В листе1 строка 2 пример f.zadrigailov с даты 16.04.2018 по 29.04.2018 входил 10 раз (даты входа 17.04.2018 8:58, 18.04.2018 9:14, 19.04.2018 9:06, 20.04.2018 9:00, 23.04.2018 8:58, 24.04.2018 8:47, 25.04.2018 8:52, 26.04.2018 10:39, 27.04.2018 9:00, 28.04.2018 9:15)
 
Ответить
СообщениеУже ближе, но у каждого ID свой интервал времени в столбце С и D, для каждого ID и нужно вычислить в его периоде входил или не входил.
В листе1 строка 2 пример f.zadrigailov с даты 16.04.2018 по 29.04.2018 входил 10 раз (даты входа 17.04.2018 8:58, 18.04.2018 9:14, 19.04.2018 9:06, 20.04.2018 9:00, 23.04.2018 8:58, 24.04.2018 8:47, 25.04.2018 8:52, 26.04.2018 10:39, 27.04.2018 9:00, 28.04.2018 9:15)

Автор - Keks
Дата добавления - 07.05.2018 в 17:04
abtextime Дата: Понедельник, 07.05.2018, 17:14 | Сообщение № 7
Группа: Проверенные
Ранг: Ветеран
Сообщений: 829
Репутация: 117 ±
Замечаний: 0% ±

Excel 2010
Особо тестировать некогда, посмотрите, вдруг подойдет

[vba]
Код
Public Sub Fill()

Dim Str As String, D, D1, D2 As Date

For i = 2 To Worksheets("лист1").Cells(Rows.Count, 1).End(xlUp).Row
    Str = Worksheets("лист1").Cells(i, 5).Value
    For j = 1 To 100
        TZ = InStr(Str, ":")
        If TZ = 0 Then Exit For
        L = TZ + 2
        D1 = Worksheets("лист1").Cells(i, 3).Value
        D2 = Worksheets("лист1").Cells(i, 4).Value
        D = Left(Str, L)
        If (D >= D1) And (D <= D2) Then
            Counter = Counter + 1
            Worksheets("Лист3").Cells(Counter, 1).Value = Left(Str, L)
            Worksheets("Лист3").Cells(Counter, 2).Value = Worksheets("лист1").Cells(i, 2).Value
        End If
        If L = Len(Str) Then Exit For
        Str = Right(Str, Len(Str) - L - 1)
    Next j
Next i

End Sub
[/vba]

Макрос подвешен на Ctrl+q. Заполняет пустой лист Лист3
К сообщению приложен файл: 6051294.xlsm(23.5 Kb)


Сообщение отредактировал abtextime - Понедельник, 07.05.2018, 17:15
 
Ответить
СообщениеОсобо тестировать некогда, посмотрите, вдруг подойдет

[vba]
Код
Public Sub Fill()

Dim Str As String, D, D1, D2 As Date

For i = 2 To Worksheets("лист1").Cells(Rows.Count, 1).End(xlUp).Row
    Str = Worksheets("лист1").Cells(i, 5).Value
    For j = 1 To 100
        TZ = InStr(Str, ":")
        If TZ = 0 Then Exit For
        L = TZ + 2
        D1 = Worksheets("лист1").Cells(i, 3).Value
        D2 = Worksheets("лист1").Cells(i, 4).Value
        D = Left(Str, L)
        If (D >= D1) And (D <= D2) Then
            Counter = Counter + 1
            Worksheets("Лист3").Cells(Counter, 1).Value = Left(Str, L)
            Worksheets("Лист3").Cells(Counter, 2).Value = Worksheets("лист1").Cells(i, 2).Value
        End If
        If L = Len(Str) Then Exit For
        Str = Right(Str, Len(Str) - L - 1)
    Next j
Next i

End Sub
[/vba]

Макрос подвешен на Ctrl+q. Заполняет пустой лист Лист3

Автор - abtextime
Дата добавления - 07.05.2018 в 17:14
_Boroda_ Дата: Понедельник, 07.05.2018, 17:56 | Сообщение № 8
Группа: Модераторы
Ранг: Местный житель
Сообщений: 12749
Репутация: 5227 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Пользовательская функция
[vba]
Код
Function Daty(Baz_ As Range, ID_, d0_, d1_)
    d0_ = CDate(d0_)
    d1_ = CDate(d1_)
    Baz1_ = Baz_.Value
    For i = 1 To UBound(Baz1_)
        If Baz_(i, 2) = ID_ Then
            If CDate(Baz_(i, 1)) >= d0_ Then
                If CDate(Baz_(i, 1)) <= d1_ Then
                    t_ = t_ & vbLf & Baz_(i, 1)
                End If
            End If
        End If
    Next i
    Daty = Mid(t_, 2)
End Function
[/vba]
К сообщению приложен файл: 6051294_2.xlsm(23.3 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеПользовательская функция
[vba]
Код
Function Daty(Baz_ As Range, ID_, d0_, d1_)
    d0_ = CDate(d0_)
    d1_ = CDate(d1_)
    Baz1_ = Baz_.Value
    For i = 1 To UBound(Baz1_)
        If Baz_(i, 2) = ID_ Then
            If CDate(Baz_(i, 1)) >= d0_ Then
                If CDate(Baz_(i, 1)) <= d1_ Then
                    t_ = t_ & vbLf & Baz_(i, 1)
                End If
            End If
        End If
    Next i
    Daty = Mid(t_, 2)
End Function
[/vba]

Автор - _Boroda_
Дата добавления - 07.05.2018 в 17:56
Keks Дата: Вторник, 08.05.2018, 12:09 | Сообщение № 9
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
abtextime,
_Boroda_,
Спасибо большое, намного облегчил работу.
 
Ответить
Сообщениеabtextime,
_Boroda_,
Спасибо большое, намного облегчил работу.

Автор - Keks
Дата добавления - 08.05.2018 в 12:09
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Поиск клиента за определенный промежуток (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс цитирования
© 2010-2018 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!