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

Вход

Регистрация

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

 

= Мир MS Excel/Как вывести список по опр. условиям - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Как вывести список по опр. условиям (Формулы/Formulas)
Как вывести список по опр. условиям
lizzyone Дата: Суббота, 25.12.2021, 11:01 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 1
Репутация: 0 ±
Замечаний: 0% ±

Уважаемые гуру Excel, пожалуйста, помогите!

Есть список сотрудников и есть список скиллов. Там где единица - то значит у человека есть указанный скилл, там где пусто - значит нет скилла.
Нужно вывести список сотрудников, у которых по каждой программе есть скилл.
Я очень долго и упорно пыталась это сделать с помощью функций индекс и наименьший, но ничего не выходит.

Прикрепляю файл для примера. В реальности, конечно, список сотрудников и скиллов значительно выше.
Буду очень благодарна за помощь!)
К сообщению приложен файл: 4744759.xlsx(12.1 Kb)
 
Ответить
СообщениеУважаемые гуру Excel, пожалуйста, помогите!

Есть список сотрудников и есть список скиллов. Там где единица - то значит у человека есть указанный скилл, там где пусто - значит нет скилла.
Нужно вывести список сотрудников, у которых по каждой программе есть скилл.
Я очень долго и упорно пыталась это сделать с помощью функций индекс и наименьший, но ничего не выходит.

Прикрепляю файл для примера. В реальности, конечно, список сотрудников и скиллов значительно выше.
Буду очень благодарна за помощь!)

Автор - lizzyone
Дата добавления - 25.12.2021 в 11:01
Pelena Дата: Суббота, 25.12.2021, 11:17 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 18233
Репутация: 4096 ±
Замечаний: ±

Excel 2016 & Mac Excel
пыталась это сделать с помощью функций индекс и наименьший

Код
=ЕСЛИОШИБКА(ИНДЕКС(скиллы!$A$2:$A$8;НАИМЕНЬШИЙ(ЕСЛИ(ИНДЕКС(скиллы!$B$2:$F$8;0;ПОИСКПОЗ(итог!I$1;скиллы!$B$1:$F$1;0))=1;СТРОКА(скиллы!$A$2:$A$8)-1);СТРОКА(A1)));"")

или немассивная
Код
=ЕСЛИОШИБКА(ИНДЕКС(скиллы!$A$2:$A$8;АГРЕГАТ(15;6;(СТРОКА(скиллы!$A$2:$A$8)-1)/(ИНДЕКС(скиллы!$B$2:$F$8;0;ПОИСКПОЗ(итог!I$1;скиллы!$B$1:$F$1;0))=1);СТРОКА(A1)));"")
К сообщению приложен файл: 0438374.xlsx(16.6 Kb)


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщение
пыталась это сделать с помощью функций индекс и наименьший

Код
=ЕСЛИОШИБКА(ИНДЕКС(скиллы!$A$2:$A$8;НАИМЕНЬШИЙ(ЕСЛИ(ИНДЕКС(скиллы!$B$2:$F$8;0;ПОИСКПОЗ(итог!I$1;скиллы!$B$1:$F$1;0))=1;СТРОКА(скиллы!$A$2:$A$8)-1);СТРОКА(A1)));"")

или немассивная
Код
=ЕСЛИОШИБКА(ИНДЕКС(скиллы!$A$2:$A$8;АГРЕГАТ(15;6;(СТРОКА(скиллы!$A$2:$A$8)-1)/(ИНДЕКС(скиллы!$B$2:$F$8;0;ПОИСКПОЗ(итог!I$1;скиллы!$B$1:$F$1;0))=1);СТРОКА(A1)));"")

Автор - Pelena
Дата добавления - 25.12.2021 в 11:17
прохожий2019 Дата: Суббота, 25.12.2021, 12:40 | Сообщение № 3
Группа: Проверенные
Ранг: Ветеран
Сообщений: 743
Репутация: 181 ±
Замечаний: 0% ±

365 Beta Channel
Код
=ФИЛЬТР(скиллы!$A$2:$A$8;ИНДЕКС(скиллы!$B$2:$F$8;;ПОИСКПОЗ(итог!I10;скиллы!$B$1:$F$1;)))
К сообщению приложен файл: 3237168.xlsx(13.3 Kb)
 
Ответить
Сообщение
Код
=ФИЛЬТР(скиллы!$A$2:$A$8;ИНДЕКС(скиллы!$B$2:$F$8;;ПОИСКПОЗ(итог!I10;скиллы!$B$1:$F$1;)))

Автор - прохожий2019
Дата добавления - 25.12.2021 в 12:40
bmv98rus Дата: Суббота, 25.12.2021, 13:04 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3777
Репутация: 665 ±
Замечаний: 0% ±

Excel 2013/2016
и кросс разумеется
и еще

может пора п. 5.s упразднить или начать соблюдать?


Замечательный Временно просто медведь , процентов на 20.

Сообщение отредактировал bmv98rus - Суббота, 25.12.2021, 18:18
 
Ответить
Сообщениеи кросс разумеется
и еще

может пора п. 5.s упразднить или начать соблюдать?

Автор - bmv98rus
Дата добавления - 25.12.2021 в 13:04
krosav4ig Дата: Суббота, 25.12.2021, 14:31 | Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 2346
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
это сделать с помощью функций индекс и наименьший, но ничего не выходит
А оно надо?
Вариант PQ+PP
К сообщению приложен файл: -4-.xlsx(154.1 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщение
это сделать с помощью функций индекс и наименьший, но ничего не выходит
А оно надо?
Вариант PQ+PP

Автор - krosav4ig
Дата добавления - 25.12.2021 в 14:31
bmv98rus Дата: Суббота, 25.12.2021, 14:42 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3777
Репутация: 665 ±
Замечаний: 0% ±

Excel 2013/2016
Вариант PQ+PP
осталось предположить, что версия PRO или одинокий Excel у ТС.


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
Сообщение
Вариант PQ+PP
осталось предположить, что версия PRO или одинокий Excel у ТС.

Автор - bmv98rus
Дата добавления - 25.12.2021 в 14:42
прохожий2019 Дата: Суббота, 25.12.2021, 14:59 | Сообщение № 7
Группа: Проверенные
Ранг: Ветеран
Сообщений: 743
Репутация: 181 ±
Замечаний: 0% ±

365 Beta Channel
Вариант PQ+PP
тогда уж голым PQ обойтись можно
[vba]
Код
let
    f=(x)=>{x[s]{0}}&x[Столбец1],
    from = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    unpiv = Table.UnpivotOtherColumns(from, {"Столбец1"}, "s", "v"),
    group = Table.Group(unpiv, "s", {"tmp", f}),
    tbl = Table.FromColumns(group[tmp]),
    to = Table.PromoteHeaders(tbl)
in
    to
[/vba]

[offtop]
предположить, что версия PRO
ТС не ограничивал свою хотелку конкретной версией, чем плохи решения в 365?
К сообщению приложен файл: 9555600.xlsx(160.7 Kb)


Сообщение отредактировал прохожий2019 - Суббота, 25.12.2021, 15:02
 
Ответить
Сообщение
Вариант PQ+PP
тогда уж голым PQ обойтись можно
[vba]
Код
let
    f=(x)=>{x[s]{0}}&x[Столбец1],
    from = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    unpiv = Table.UnpivotOtherColumns(from, {"Столбец1"}, "s", "v"),
    group = Table.Group(unpiv, "s", {"tmp", f}),
    tbl = Table.FromColumns(group[tmp]),
    to = Table.PromoteHeaders(tbl)
in
    to
[/vba]

[offtop]
предположить, что версия PRO
ТС не ограничивал свою хотелку конкретной версией, чем плохи решения в 365?

Автор - прохожий2019
Дата добавления - 25.12.2021 в 14:59
bmv98rus Дата: Суббота, 25.12.2021, 15:07 | Сообщение № 8
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3777
Репутация: 665 ±
Замечаний: 0% ±

Excel 2013/2016
Цитата прохожий2019, 25.12.2021 в 14:59, в сообщении № 7 ()
чем плохи решения в 365?
ну хорошо уточним, что или 2019 и новее, или Office 2013-2016 PRO, или Просто Excel 2013-2016.


Замечательный Временно просто медведь , процентов на 20.

Сообщение отредактировал bmv98rus - Суббота, 25.12.2021, 15:09
 
Ответить
Сообщение
Цитата прохожий2019, 25.12.2021 в 14:59, в сообщении № 7 ()
чем плохи решения в 365?
ну хорошо уточним, что или 2019 и новее, или Office 2013-2016 PRO, или Просто Excel 2013-2016.

Автор - bmv98rus
Дата добавления - 25.12.2021 в 15:07
krosav4ig Дата: Суббота, 25.12.2021, 18:28 | Сообщение № 9
Группа: Друзья
Ранг: Старожил
Сообщений: 2346
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
bmv98rus, а как же 2010? https://www.microsoft.com/en-us/download/details.aspx?id=43348
и до кучи еще вариант в PQ[vba]
Код
let
    Source =
        Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    Columns =
        List.Skip(Table.ColumnNames(Source),1),
    Replace =
        Table.ReplaceValue(Source,1,each [Столбец1],Replacer.ReplaceValue,Columns),
    ToColumns =
        Table.ToColumns(Table.SelectColumns(Replace,Columns)),
    DropNulls =
        List.Transform(ToColumns,List.RemoveNulls),
    ToTable =
        Table.FromColumns(DropNulls,Columns)
in
    ToTable
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Суббота, 25.12.2021, 18:28
 
Ответить
Сообщениеbmv98rus, а как же 2010? https://www.microsoft.com/en-us/download/details.aspx?id=43348
и до кучи еще вариант в PQ[vba]
Код
let
    Source =
        Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    Columns =
        List.Skip(Table.ColumnNames(Source),1),
    Replace =
        Table.ReplaceValue(Source,1,each [Столбец1],Replacer.ReplaceValue,Columns),
    ToColumns =
        Table.ToColumns(Table.SelectColumns(Replace,Columns)),
    DropNulls =
        List.Transform(ToColumns,List.RemoveNulls),
    ToTable =
        Table.FromColumns(DropNulls,Columns)
in
    ToTable
[/vba]

Автор - krosav4ig
Дата добавления - 25.12.2021 в 18:28
bmv98rus Дата: Суббота, 25.12.2021, 18:32 | Сообщение № 10
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3777
Репутация: 665 ±
Замечаний: 0% ±

Excel 2013/2016
а как же 2010?
Поддержка закончилась :D


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
Сообщение
а как же 2010?
Поддержка закончилась :D

Автор - bmv98rus
Дата добавления - 25.12.2021 в 18:32
прохожий2019 Дата: Суббота, 25.12.2021, 22:46 | Сообщение № 11
Группа: Проверенные
Ранг: Ветеран
Сообщений: 743
Репутация: 181 ±
Замечаний: 0% ±

365 Beta Channel
до кучи еще вариант в PQ
ReplaceValue всё же медленная штука - списочные преобразования шустрее
[vba]
Код
let
    from = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    nms=List.Skip(Table.ColumnNames(from)),
    lst=List.Buffer(from[Столбец1]),
    acc=List.Accumulate(nms,{},(s,c)=>s&{List.Transform(List.PositionOf(Table.Column(from,c),1,2),(x)=>lst{x})}),
    to = Table.FromColumns(acc,nms)
in
    to
[/vba] хотя unpivot ещё быстрее (пока оперативы хватает :) )
К сообщению приложен файл: 7878398.jpg(12.7 Kb)


Сообщение отредактировал прохожий2019 - Суббота, 25.12.2021, 22:47
 
Ответить
Сообщение
до кучи еще вариант в PQ
ReplaceValue всё же медленная штука - списочные преобразования шустрее
[vba]
Код
let
    from = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    nms=List.Skip(Table.ColumnNames(from)),
    lst=List.Buffer(from[Столбец1]),
    acc=List.Accumulate(nms,{},(s,c)=>s&{List.Transform(List.PositionOf(Table.Column(from,c),1,2),(x)=>lst{x})}),
    to = Table.FromColumns(acc,nms)
in
    to
[/vba] хотя unpivot ещё быстрее (пока оперативы хватает :) )

Автор - прохожий2019
Дата добавления - 25.12.2021 в 22:46
jakim Дата: Воскресенье, 26.12.2021, 21:03 | Сообщение № 12
Группа: Друзья
Ранг: Старожил
Сообщений: 1060
Репутация: 282 ±
Замечаний: 0% ±

Excel 2010
И мой примитивный вариант

[vba]
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type text}, {"1С", Int64.Type}, {"excel", Int64.Type}, {"python", Int64.Type}, {"sql", Int64.Type}, {"PowerBI", Int64.Type}}),
    #"Unpivoted Other Columns" = Table.UnpivotOtherColumns(#"Changed Type", {"Column1"}, "Attribute", "Value"),
    #"Sorted Rows" = Table.Sort(#"Unpivoted Other Columns",{{"Attribute", Order.Ascending}}),
    #"Removed Columns" = Table.RemoveColumns(#"Sorted Rows",{"Value"}),
    #"Filtered Rows" = Table.SelectRows(#"Removed Columns", each ([Attribute] = "1С")),
    #"Removed Columns1" = Table.RemoveColumns(#"Filtered Rows",{"Attribute"}),
    #"Renamed Columns" = Table.RenameColumns(#"Removed Columns1",{{"Column1", "1C"}})
in
    #"Renamed Columns"
[/vba]
К сообщению приложен файл: 4744759_SQL.xlsx(31.4 Kb)
 
Ответить
Сообщение
И мой примитивный вариант

[vba]
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type text}, {"1С", Int64.Type}, {"excel", Int64.Type}, {"python", Int64.Type}, {"sql", Int64.Type}, {"PowerBI", Int64.Type}}),
    #"Unpivoted Other Columns" = Table.UnpivotOtherColumns(#"Changed Type", {"Column1"}, "Attribute", "Value"),
    #"Sorted Rows" = Table.Sort(#"Unpivoted Other Columns",{{"Attribute", Order.Ascending}}),
    #"Removed Columns" = Table.RemoveColumns(#"Sorted Rows",{"Value"}),
    #"Filtered Rows" = Table.SelectRows(#"Removed Columns", each ([Attribute] = "1С")),
    #"Removed Columns1" = Table.RemoveColumns(#"Filtered Rows",{"Attribute"}),
    #"Renamed Columns" = Table.RenameColumns(#"Removed Columns1",{{"Column1", "1C"}})
in
    #"Renamed Columns"
[/vba]

Автор - jakim
Дата добавления - 26.12.2021 в 21:03
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Как вывести список по опр. условиям (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

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