Как сделать такую операцию с таблицей?

mrgreyarbtr

Пользователь
Регистрация
01.10.2022
Сообщения
99
Благодарностей
30
Баллы
18
Есть таблица в формате Excel, в ней есть 2 колонки

Товар{-Sting.Space-}Количество


Бывает попадаются такие строки

Товар1 24
Товар1 1
Товар4 345
Товар3 2
Товар1 3

В конце хочу чтобы получилось:

Товар1 28
Товар3 2
Товар 4 345

Задача состоит в том, чтобы сложить вторую колонку во всех дублирующих товарах. Их может быть 1000 разновидностей.
Подскажите в каком направлении двигаться?
 
  • Спасибо
Реакции: djaga
Регистрация
23.03.2015
Сообщения
1 124
Благодарностей
656
Баллы
113
Как бы я сделал: Создал бы вторую таблицу и перекладывал бы туда строки с предварительной проверкой на наличие товара во второй таблице. Если такого товара нет, просто ложим кладём новую строку. Если товар есть, увеличиваем у него значение во втором столбце. И это в цикл
 

Alexmd

Client
Регистрация
10.12.2018
Сообщения
1 021
Благодарностей
1 383
Баллы
113
C#:
var table = project.Tables["result"];//заменить имя таблицы на свое
table.GetItems("all", true).GroupBy(x => x.First())
    .Select(gr => new
        {
            name = gr.Key,
            sum = gr.Select(x=>x.Last()).Select(x=>
                {
                    int.TryParse(x, out int c);
                    return c;
                }).Sum().ToString()
        })
    .ToList().ForEach(g=>{ table.AddRow(new[]{ g.name, g.sum });
 
  • Спасибо
Реакции: sydoow и mrgreyarbtr

texnorip

Client
Регистрация
22.10.2016
Сообщения
26
Благодарностей
20
Баллы
3
Решения от ai
Для решения этой задачи можно использовать функцию сводной таблицы (Pivot Table) в Excel. Следуйте этим шагам:
  1. Выберите всю таблицу, включая заголовки колонок.
  2. На вкладке "Вставка" выберите "Сводная таблица".
  3. В диалоговом окне выберите диапазон ячеек таблицы и место, где вы хотите поместить сводную таблицу.
  4. Выберите "Товар" в качестве поля строк (Row Fields) и "Количество" в качестве поля значений (Value Fields).
  5. Перетащите поле "Товар" в область "Фильтры" (Filter Fields).
  6. В открывшемся списке фильтров выберите все товары, которые вы хотите объединить.
  7. Сводная таблица будет автоматически сложит количество товаров для каждого выбранного товара.
После завершения этих шагов, вы получите таблицу, в которой каждый дублирующийся товар будет сгруппирован и отображен только один раз, а количество товара будет суммироваться для каждой группы.
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 689
Баллы
113
Решения от ai
Для решения этой задачи можно использовать функцию сводной таблицы (Pivot Table) в Excel. Следуйте этим шагам:
  1. Выберите всю таблицу, включая заголовки колонок.
  2. На вкладке "Вставка" выберите "Сводная таблица".
  3. В диалоговом окне выберите диапазон ячеек таблицы и место, где вы хотите поместить сводную таблицу.
  4. Выберите "Товар" в качестве поля строк (Row Fields) и "Количество" в качестве поля значений (Value Fields).
  5. Перетащите поле "Товар" в область "Фильтры" (Filter Fields).
  6. В открывшемся списке фильтров выберите все товары, которые вы хотите объединить.
  7. Сводная таблица будет автоматически сложит количество товаров для каждого выбранного товара.
После завершения этих шагов, вы получите таблицу, в которой каждый дублирующийся товар будет сгруппирован и отображен только один раз, а количество товара будет суммироваться для каждой группы.
в каком месте тут работа из под Зеннопостера ?
 

texnorip

Client
Регистрация
22.10.2016
Сообщения
26
Благодарностей
20
Баллы
3
в каком месте тут работа из под Зеннопостера ?
Экономия ресурсов, если ексель подтянет данные с ячеек автоматически, необходимость дополнительных действий в Зеннопостере отпадает, зачем изобретать велосипед
 

Mikhail B.

Moderator
Регистрация
23.12.2014
Сообщения
14 320
Благодарностей
5 424
Баллы
113

Moonwalker

Client
Регистрация
16.03.2016
Сообщения
1 354
Благодарностей
945
Баллы
113
Экономия ресурсов, если ексель подтянет данные с ячеек автоматически, необходимость дополнительных действий в Зеннопостере отпадает, зачем изобретать велосипед
Дополнительные действия как раз в Экселе. Открыть, что-то сделать, сохранить. Файл может вообще скачиваться (или генерироваться) автоматически (например, остатки товара на сайте поставщика/-ов). Здесь же Зенка все сделала сама... И да, лучше ОДИН раз изобрести велосипед, чем каждый раз ходить ПЕШКОМ ))
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)