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

Вход

Регистрация

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

 

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

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Посчитать количество дней при заданном условии (Формулы/Formulas)
Посчитать количество дней при заданном условии
Chertyozhnik Дата: Четверг, 30.06.2016, 20:03 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 79
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Здравствуйте, товарищи ).

Помогите пожалуйста решить задачу. Имеется 2 столбца - дата со временем и логин. В первом столбце за одну дату может быть несколько значений. Необходимо посчитать, общее количество дней для искомого во втором столбце логина. Пример прикладываю ниже.
К сообщению приложен файл: 3564899.xlsx (8.4 Kb)
 
Ответить
СообщениеЗдравствуйте, товарищи ).

Помогите пожалуйста решить задачу. Имеется 2 столбца - дата со временем и логин. В первом столбце за одну дату может быть несколько значений. Необходимо посчитать, общее количество дней для искомого во втором столбце логина. Пример прикладываю ниже.

Автор - Chertyozhnik
Дата добавления - 30.06.2016 в 20:03
Nic70y Дата: Четверг, 30.06.2016, 20:28 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 8760
Репутация: 2273 ±
Замечаний: 0% ±

Excel 2010
массивная:
Код
=СЧЁТ(1/(ПОИСКПОЗ(ОКРУГЛВНИЗ(A$3:A$7;);ЕСЛИ(B$3:B$7=D3;ОКРУГЛВНИЗ(A$3:A$7;));)=СТРОКА(A$3:A$7)-2))
К сообщению приложен файл: 8827030.xlsx (8.8 Kb)


ЮMoney 41001841029809
 
Ответить
Сообщениемассивная:
Код
=СЧЁТ(1/(ПОИСКПОЗ(ОКРУГЛВНИЗ(A$3:A$7;);ЕСЛИ(B$3:B$7=D3;ОКРУГЛВНИЗ(A$3:A$7;));)=СТРОКА(A$3:A$7)-2))

Автор - Nic70y
Дата добавления - 30.06.2016 в 20:28
krosav4ig Дата: Четверг, 30.06.2016, 20:33 | Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
или
Код
=СЧЁТ(1/ЧАСТОТА(($B$3:$B$7=D3)*ОТБР($A$3:$A$7);ОТБР($A$3:$A$7)))
тоже массивная
К сообщению приложен файл: 0537900.xlsx (8.5 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениеили
Код
=СЧЁТ(1/ЧАСТОТА(($B$3:$B$7=D3)*ОТБР($A$3:$A$7);ОТБР($A$3:$A$7)))
тоже массивная

Автор - krosav4ig
Дата добавления - 30.06.2016 в 20:33
Chertyozhnik Дата: Четверг, 30.06.2016, 20:34 | Сообщение № 4
Группа: Пользователи
Ранг: Участник
Сообщений: 79
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
ух... ничего себе.... пошел разбираться... Спасибо большое
 
Ответить
Сообщениеух... ничего себе.... пошел разбираться... Спасибо большое

Автор - Chertyozhnik
Дата добавления - 30.06.2016 в 20:34
МВТ Дата: Четверг, 30.06.2016, 21:10 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 476
Репутация: 137 ±
Замечаний: 0% ±

Excel 2007
Вариант без массивок :)
[vba]
Код
Option Explicit
Function tt(login As String, BD As Range) As Long
    Dim arr(), i As Long, dict As Object, d As String
    If BD.Columns.Count <> 2 Then
        tt = -1
        Exit Function
    End If
    If BD.Rows.Count < 2 Then
        If BD.Cells(1, 2) = login Then tt = 1 Else tt = 0
        Exit Function
    End If
    arr = BD
    Set dict = CreateObject("Scripting.Dictionary")
    With dict
        For i = 1 To UBound(arr)
            If arr(i, 2) = login Then
                d = Format(arr(i, 1), "ddmmyyyy")
                If Not .exists(d) Then
                    .Add Key:=d, Item:=0
                End If
            End If
            tt = .Count
        Next
    End With
End Function
[/vba]
 
Ответить
СообщениеВариант без массивок :)
[vba]
Код
Option Explicit
Function tt(login As String, BD As Range) As Long
    Dim arr(), i As Long, dict As Object, d As String
    If BD.Columns.Count <> 2 Then
        tt = -1
        Exit Function
    End If
    If BD.Rows.Count < 2 Then
        If BD.Cells(1, 2) = login Then tt = 1 Else tt = 0
        Exit Function
    End If
    arr = BD
    Set dict = CreateObject("Scripting.Dictionary")
    With dict
        For i = 1 To UBound(arr)
            If arr(i, 2) = login Then
                d = Format(arr(i, 1), "ddmmyyyy")
                If Not .exists(d) Then
                    .Add Key:=d, Item:=0
                End If
            End If
            tt = .Count
        Next
    End With
End Function
[/vba]

Автор - МВТ
Дата добавления - 30.06.2016 в 21:10
Nic70y Дата: Воскресенье, 03.07.2016, 15:32 | Сообщение № 6
Группа: Друзья
Ранг: Экселист
Сообщений: 8760
Репутация: 2273 ±
Замечаний: 0% ±

Excel 2010
krosav4ig, Ваша формула неверна.


ЮMoney 41001841029809
 
Ответить
Сообщениеkrosav4ig, Ваша формула неверна.

Автор - Nic70y
Дата добавления - 03.07.2016 в 15:32
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Посчитать количество дней при заданном условии (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

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