Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Разделить списки производителей и моделей на отдельные наименования и отобрать только реально существующие их пары
 
Возможно ли слелать так из первого листа на второй  
22.png (86.33 КБ)
23.png (118.45 КБ)
 
DoubleV, как определить количество моделей для каждой марки автомобиля? В Вашем примере оно разное (3, 3, 4 и 5).
 
Murderface_, вариантов моделей могут быть и больше
 
А как тогда понять, что к Seat относятся модели с Ateca до Leon, а не с Q2 до Superb например?
 
Из приведенного примера - нельзя, т.к. невозможно установить соответствие.
Можно было бы только при условии полного совпадения количества элементов в двух ячейках:

Ауди / Ауди / Ауди / Сеат / Сеат / Сеат / Шкода / Шкода / Шкода / Шкода ...
A3 / Q2 / TT / Ateca / Ibiza / Leon / Karoq / Kodiaq / Octavia / Superb ...
 
Доброе время суток
Цитата
arkadiinovikov написал:
нельзя, т.к. невозможно установить соответствие.
Ну, почему же? Достаточно составить таблицу модельного ряда фирм и по ней фильтровать развёртку двух столбцов. Просто ТС ищет такую интеллектуальную формулу, которая это знает и умеет :)
 
Цитата
Андрей VG написал:
Просто ТС ищет такую интеллектуальную формулу, которая это знает и умеет
Андрей, безусловно. В экселе есть 100500 вариантов выполнения одной и той же задачи.
Но я, например, пишу сюда вопросы, чтобы получить вразумительный ответ, а обычно получаю кучу поучений от "старожилов" форума по поводу неправильно оформленного ника, темы, кода и вообще какие все пользователи умные "хотят всё одной кнопочкой"....
То есть форум, созданный для помощи, моментально превращается в публичное уничижение за несоблюдение правил. Я обожаю сам сайт с великолепными уроками и советами, а вот с форума удалялся уже несколько раз именно из-за таких вот комментариев.

Заметьте, ТС был достаточно мотивирован решить свою задачу, чтобы написать именно сюда - найти сайт в интернете, зарегистрироваться на этом допотопном движке и задать вопрос. И Вы тут же его обвиняете что он просто "хочет формулу, которая всё умеет".
Изменено: arkadiinovikov - 23 Янв 2020 15:23:52
 
Цитата
arkadiinovikov написал:
в публичное уничижение за несоблюдение правил.
Приведите пример того, что является унижением?
Цитата
arkadiinovikov написал:
И Вы тут же его обвиняете что он просто "хочет формулу, которая всё умеет".
Указываю на то, что ТС не продумал логическое решение задачи. Excel он может и не знать - на форуме с этим помогут, а вот построить цепочку решения - это задача самого ТС - для этого он учился перед тем как выйти во взрослую жизнь.
Вы же не предложили ему никакого решения, а занялись в теме ровно нем же :)
 
Спасибо всем за ответы, удаляюсь  
 
Правильно ли я понимаю, что таблицы пар производитель - модель не будет? Иначе эту задачу можно было бы решить и в Power Query и в VBA. А может быть медведь и формулами бы осилил :)
 
Цитата
Андрей VG написал:
таблицы пар производитель - модель не будет?
Есть таблица.
У тс, наверное, интерес к этой теме пропал, а у меня еще имеется и хотел бы увидеть решение в PQ
 
Цитата
abc1 написал:
хотел бы увидеть решение в PQ
Вариант. Таблица на листе Sheet1 имеет имя dataBody, на листе Лист1 makeModels
Код
let
    dataBody = Excel.CurrentWorkbook(){[Name="dataBody"]}[Content],
    typedDataBody = Table.TransformColumnTypes(dataBody, {{"SKU", type text}, {"EAN-Code", type text}, {"Category", type text}, {"description", type text}, {"Make", type text}, {"Model", type text}, {"Year", type text}, {"EUR", Currency.Type}}),
    defineMakeModels = Table.AddColumn(typedDataBody, "temp", each
        [
            makers = List.Transform(Text.Split([Make], "/"), each Text.Lower(Text.Trim(_))),
            models = List.Transform(Text.Split([Model], ","), each Text.Lower(Text.Trim(_))),
            toTable = Table.Join(Table.FromColumns({makers}, {"makeKey"}), {}, Table.FromColumns({models}, {"modelKey"}), {})
        ][toTable]
    ),
    expandDataBody = Table.ExpandTableColumn(defineMakeModels, "temp", {"makeKey", "modelKey"}),
    makeModels = Excel.CurrentWorkbook(){[Name="makeModels"]}[Content],
    typedMakeModels = Table.TransformColumnTypes(makeModels,{{"производитель", type text}, {"модель", type text}}),
    addMakeKey = Table.AddColumn(typedMakeModels, "makeKey", each Text.Lower(Text.Trim([производитель]))),
    addModelKey = Table.AddColumn(addMakeKey, "modelKey", each Text.Lower(Text.Trim([модель]))),
    result = Table.Join(expandDataBody, {"makeKey", "modelKey"}, addModelKey, {"makeKey", "modelKey"}, JoinKind.Inner),
    #"Removed Columns" = Table.RemoveColumns(result,{"makeKey", "modelKey"})
in
    #"Removed Columns"

P. S. Предполагается, что в таблице makeModels есть все модели всех производителей, которые определены в dataBody. В противном случае будут отобраны только те, которые совпадают.
 
Цитата
Андрей VG написал:
в таблице makeModels есть все модели всех производителей
Плюс надо добавить и сокращенные варианты производителей в makeModels.
Спасибо за решение
 
Суперинформативно...
Цитата
Возможно ли слелать так
Цитата
Разгруппирование информации,
Второе недалеко ушло от первого...
Предложите название темы, отражающее суть проблемы. Модераторы заменят
 
Цитата
vikttur написал:
Предложите название темы
Отдуваться следовательно мне? :)  Вариант
Как разделить введённые каждый в свою ячейку списки производителей и моделей на отдельные наименования и отобрать только реально существующие их пары?
 
Цитата
abc1 написал:
У тс, наверное, интерес к этой теме пропал, а у меня еще имеется и хотел бы увидеть решение в PQ
Не пропал интерес просто, понял что мне не хватает знаний объяснить то что мне нужно. Стоит цель разобраться с прайс-листом авто запчастей который пришел в таком формате, для создания интернет магазина, где в дальнейшем на сайте будет фильтроваться по Марка/Модель/Год.
 
Мне кажется что за все это время можно было и вручную все переписать.
 
Цитата
DoubleV написал:
понял что мне не хватает знаний объяснить то что мне нужно
Допустим попали вы в прошлое к Ньютону или Лобачевскому в гости с двумя листочками - на одном список производителей, на другом список моделей. Попросили их сопоставить какие модели каким производителем выпущены. Как вы думаете, они с этой задачей справляться?  :D
Поэтому без таблицы пар производитель модель, только
Цитата
DoubleV написал:
вручную все переписать.
Страницы: 1
Читают тему (гостей: 1)
Наверх