Страницы: 1
RSS
Из сокращенных названий предметов вывести их количество
 
Всем привет и С Новым Годом!
Не могу разобраться уже пол дня. Есть выгрузка из базы на один лист, с этого листа ссылка нужных данных идет на  другой лист - результаты.
Названия в базе все сокращенные и заполняются в определенном порядке, например - инт+2ук+штк (2ук это два предмета ук).
Необходимо перевести эти предметы цифрами в количество, т.е. -  инт+2ук+штк  должно выглядеть следующим образом - 1 (одна ячейка)  2 (вторая)  1 (третья).
инт+3ук+10штк  должно выглядеть  - 1     3    10  в отдельных ячейках.
Стоит заметить что не всегда могут быть все предметы , например может быть так - 5инт+штк , тогда должно выглядеть так    5    (вторая ячейка ук пустая)   1
Подскажите как это реализовать формулами. Спасибо.
Изменено: Сергей Л - 04.01.2021 19:55:09
 
инт+ук+штк - эти "названия" всегда такие же и на своих местах?
 
Добрый день!
Да. Всегда на своих местах и всегда сокращение одинаковое.  
 
с БУКами и УКами проблема :-)
По вопросам из тем форума, личку не читаю.
 
Точно. ) Что то не подумал и придумал почти одинаковые слова.
На деле таких повторов нет.  Названия абсолютно разные. \
Заменил бук на сит)  
 
ну вот, а я уже решил массивно так
=IFERROR(10^LOG(IFERROR(--RIGHT(IFERROR(SUBSTITUTE(LEFT("+"&$A2;MAX(IFERROR(FIND({1;2;3;4;5;6;7;8;9;0;"+"}&B$1;"0"&$A2);-1)));"+";REPT(" ";99));-1);99);1));"")
Изменено: БМВ - 04.01.2021 22:58:26
По вопросам из тем форума, личку не читаю.
 
вариант на pq
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    #"Split Column by Delimiter" = Table.ExpandListColumn(Table.TransformColumns(Source, {"Выгрузка с базы", Splitter.SplitTextByDelimiter("+", QuoteStyle.Csv)}), "Выгрузка с базы"),
    #"Split Column by Character Transition" = Table.SplitColumn(#"Split Column by Delimiter", "Выгрузка с базы", Splitter.SplitTextByCharacterTransition({"0".."9"}, (c) => not List.Contains({"0".."9"}, c)), {"Выгрузка с базы", "qq"}),
    #"Added Conditional Column" = Table.AddColumn(#"Split Column by Character Transition", "q", each if [qq] = null then [Выгрузка с базы] else [qq]),
    #"Added Custom" = Table.AddColumn(#"Added Conditional Column", "q2", each try if Number.From([Выгрузка с базы]) is number then Number.From([Выгрузка с базы]) else "a" otherwise  1)[[q],[q2]],
    a = Table.Group(#"Added Custom", {"q"}, {"w", each Table.AddIndexColumn(_,"w")}),
    Custom1 = Table.Combine(a[w]),
    #"Pivoted Column" = Table.Pivot(Custom1, List.Distinct(Custom1[q]), "q", "q2"),
    #"Removed Columns" = Table.RemoveColumns(#"Pivoted Column",{"w"})
in
    #"Removed Columns"
 
Цитата
БМВ написал:
ну вот, а я уже решил массмивно так
Спасибо вам! Сейчас буду пробовать.
Цитата
Антон написал:
вариант на pq
И вам спасибо! Это конечно для меня сложно. Но оставлю, может пригодится.)
 
del
Изменено: buchlotnik - 23.08.2021 15:26:33
Соблюдение правил форума не освобождает от модераторского произвола
 
del
Изменено: buchlotnik - 23.08.2021 15:26:44
Соблюдение правил форума не освобождает от модераторского произвола
Страницы: 1
Наверх