У меня есть пять столбцов, которые определяют идентификатор статьи и категории, с которыми связана статья. Пример данных как ниже:

article_id   category_id   subcategory_id   2nd_category_id   2nd_subcategory_id

94           C02           M1001        
96           C06
98           C06
101          C03           M1001        
108          C01           M1001        
110          C01           M1001        
111          C03           M1003            C02               M1001
114          C01                            C02
115          C01           M1001            C01               M1002

Из представленной выше презентации видно, что статью можно отнести к четырем категориям. В действительности это назначено одной или двум категориям, каждая с дополнительной подкатегорией. (Есть шесть родительских категорий. Каждая категория может иметь до четырех подкатегорий. В файле приблизительно 11 000 записей (т. Е. Строк / статей).) К сожалению, кодовые имена подкатегорий не являются глобально уникальными. Например, категория C01 - это "Деревья", а категория C02 - это фрукты. Но C01 подкатегория M1001 является Evergreens, в то время как C02 подкатегория M1001 является яблоки. Обратите внимание, что статья может быть присвоена одной и той же категории дважды, если хотя бы одно из назначений связано с подкатегорией - в приведенном выше примере статья 115 присваивается C01 дважды.

Что мне нужно сделать, это создать формулу, которая объединит их в одно значение поля, разделенное запятыми, в котором перечислены идентифицированные категории и подкатегории.

Как я мог этого добиться? Я предполагаю, что есть три части к этому:

  1. Найти + Заменить в столбце category_id и 2nd_category_id, чтобы заменить значение родительской категории соответствующим именем строки. Таким образом, C01 становится деревьями.

  2. Используйте некоторую формулу, чтобы заменить значения subcategory_id их именами, в зависимости от значения строки в category_id. Повторите для 2nd_subcategory_id. Если subcategory_id не существует, оставьте значение пустым.

  3. Используйте другую формулу для копирования значений в новый столбец, по возможности удаляя дубликаты записей (например, статья может быть присвоена C01 (родительская категория, унаследованная от подкатегории) и M1001 (подкатегория) и C01 (2-я категория). В этом случае формула должна содержать значение в новом столбце как «Деревья, вечнозеленые, деревья». Нет необходимости дублировать записи "Деревья", поэтому в новом значении столбца должны существовать только «Деревья, вечнозеленые».

Возможно, я слишком усложняю вещи, и есть очень простой способ добиться этого. Возможно нет. Есть указатели?

Пример того, что я хотел бы создать, приведен ниже:

article   category   subcategory   category2   subcat2   categories
94        C02        M1001                               Fruits, Apples
96        C06                                            Seeds
98        C06                                            Seeds
101       C03        M1001                               Plants, Shrubs
108       C01        M1001                               Trees, Evergreens
110       C01        M1001                               Trees, Evergreens
111       C03        M1003         C02         M1001     Plants, Climbers, Fruits, Apples
112       C06                                            Seeds
113       C01                                            Trees
114       C01                      C02                   Trees, Fruits
115       C01        M1001         C01         M1002     Trees, Evergreens, Deciduous

1 ответ1

0

Я дам вам несколько частей ответа:

  1. Создайте две таблицы поиска где-нибудь в своей книге Excel (возможно, на другом листе):

    C01   Trees
    C02   Fruits
    C03   Plants
     ⋮     ︙ 
    C06   Seeds
    

    а также

    C01_M1001   Evergreens
    C01_M1002   Deciduous
        ⋮         ︙ 
    C02_M1001   Apples
        ⋮         ︙ 
    C03_M1001   Shrubs
    C03_M1003   Climbers
        ⋮         ︙ 
    
  2. Установите для ячеек W2 - Z2 что-то вроде следующего:

    • W2=B2
    • X2=IF(C2="", "", B2 & "_" & C2)
    • Y2=IF(D2=B2, "", D2)
    • Z2=IF(E2="", "", D2 & "_" & E2)
  3. Теперь измените вышеприведенное, чтобы перевести их в имена категорий / подкатегорий, используя таблицы поиска.  Я не буду объяснять детали этого, потому что они подробно описаны как в документации Excel, так и в ответах суперпользователя.

  4. См. Раздел Создание списка содержимого ячеек, разделенных запятыми, за исключением пробелов, для способов составления списка categories .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .