Страницы: 1
RSS
Найти кто последний сделал продажу
 
Добрый день. Прошу помощи.
Есть две таблицы (в файле). Нужно во второй таблице вывести фамилию менеджера, который сделал последнюю продажу, указанному клиенту.
 
в J2:
=ПРОСМОТР(;-1/(D$2:D$15=H2);C$2:C$15)   и тянете вниз

А если офис 365 или 2021:
=ПРОСМОТРX(H2:H6;D2:D15;C2:C15;;;-1)    и не нужно тянуть
Изменено: Бахтиёр - 06.12.2021 15:57:50
 
Спасибо. Логики этой формулы пока не понял. Но все работает!
 
В формуле нет привязки в дате, поэтому если пересортируете таблицу, то данные будут некорректные

формула массива в строку 2
Код
=ИНДЕКС($C$2:$C$15;ПОИСКПОЗ(H2&МАКС(ЕСЛИ($D$2:$D$15=H2;$A$2:$A$15));$D$2:$D$15&$A$2:$A$15;0))
Изменено: mechanix 85 - 06.12.2021 16:22:41
 
Спасибо. Теперь и с сортировкой все работает.
Изменено: vikttur - 06.12.2021 17:29:29
 
Цитата
:  Теперь и с сортировкой все работает.
Если разными менеджерами в один день были заключены 2 и более договора по одному и тому же клиенту, то формула из поста №4 будет возвращать 1-го менеджера. Вам так нужно?
Изменено: Бахтиёр - 06.12.2021 16:47:56
 
Обычно, если клиент заключает два и более договора в один день, то ответственный менеджер как правило один. Но, учитывая, что таблица с данными по продажам в основном не требует сортировки, то ваша формула удобней.
Изменено: vikttur - 06.12.2021 17:29:41
 
, еще вариант на всякий случай если несколько менеджеров было
Код
=ЕСЛИОШИБКА(ИНДЕКС($C$2:$C$15;ПОИСКПОЗ(1;ИНДЕКС((СЧЁТЕСЛИ($H2:H2;$C$2:$C$15)=0)/($D$2:$D$15=$H2);0);0));"")
и еще последний
Код
=ИНДЕКС($C$2:$C$15;АГРЕГАТ(14;6;СТРОКА($C$1:$C$15)/($D$2:$D$15=$H2);1))
Изменено: Mershik - 06.12.2021 17:15:28
Не бойтесь совершенства. Вам его не достичь.
 
Для коллекции
Поиск последней непустой ячейки в строке или столбце функцией ПРОСМОТР
 
[QUOTE] написал: Логики этой формулы пока не понял. Но все работает!/QUOTE]
Когда не стоит пытаться включать логику, а просто воспользоваться помощью)
 
Для комплекта ещё и PQ
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Дата продажи", type date}, {"Номер договора", Int64.Type}, {"Ответственный менеджер", type text}, {"ФИО клиента", type text}}),
    #"Grouped Rows" = Table.Group(#"Changed Type", {"ФИО клиента"}, {{"Count", each List.Max([Дата продажи]), type date}}),
    #"Merged Queries" = Table.NestedJoin(#"Grouped Rows",{"ФИО клиента", "Count"},Table1,{"ФИО клиента", "Дата продажи"},"NewColumn",JoinKind.LeftOuter),
    #"Expanded NewColumn" = Table.ExpandTableColumn(#"Merged Queries", "NewColumn", {"Дата продажи", "Ответственный менеджер", "ФИО клиента"}, {"NewColumn.Дата продажи", "NewColumn.Ответственный менеджер", "NewColumn.ФИО клиента"}),
    #"Removed Columns" = Table.RemoveColumns(#"Expanded NewColumn",{"Count", "ФИО клиента"}),
    #"Reordered Columns" = Table.ReorderColumns(#"Removed Columns",{"NewColumn.ФИО клиента", "NewColumn.Ответственный менеджер", "NewColumn.Дата продажи"}),
    #"Removed Columns1" = Table.RemoveColumns(#"Reordered Columns",{"NewColumn.ФИО клиента"}),
    #"Renamed Columns" = Table.RenameColumns(#"Removed Columns1",{{"NewColumn.Ответственный менеджер", "Ответственный менеджер"}, {"NewColumn.Дата продажи", "Дата продажи"}})
in
    #"Renamed Columns"
 
Еще вариант в PQ (если в одну дату несколько менеджеров - выведутся через "; ":
Код
let
  src = Excel.CurrentWorkbook(){[ Name = "data" ]}[Content],
  typed = Table.TransformColumnTypes ( src, { { "Дата продажи", type date } } ),
  group = Table.Group (
    typed,
    { "ФИО клиента" },
    {
      {
        "Ответственный менеджер",
        ( x ) =>
          Text.Combine (
            Table.SelectRows ( x[[Дата продажи], [Ответственный менеджер]], each [Дата продажи] = List.Max ( x[Дата продажи] ) )[Ответственный менеджер],
            "; "
          ),
        type text
      }
    }
  )
in
  group
Страницы: 1
Наверх