Сумма строк с несколькими условиями в Excel VBA - PullRequest
0 голосов
/ 14 декабря 2018

Мне нужно иметь возможность делать сводку строк на основе определенных условий столбца.Есть таблица со следующими столбцами: ID # (row #) Часть Задание клиента QTY Dept Pass / Fail

Где ID # может быть единственным уникальным значением.

Из таблицы необходимо получить следующее:

  1. Требуется вернуть все вакансии.
  2. Требуется вернуть все новые работы, что должно быть всеми заданиями за вычетомлюбые дубликаты (т. е. первая запись для каждого уникального Part-Customer-Job-QTY-Dept (т. е., где все 5 значений равны).
  3. Все повторяющиеся задания, которые должны быть всеми ID # -Part-Customer-Job-QTY-Dept-Pass.

Например:
1-Part; Клиент; Job; QTY; Dept; Fail

2-Part; Customer; Job; QTY; Dept; Pass

, где Part-Customer-Job-QTY-Dept равны, с 1 ошибкой и 2 прохождением.

1 и 2 легко, но 3 являетсянемного хитро.

Должен ли я просто найти ID # (строки), которые включают сбой перед передачей.

Можно ли это сделать за один цикл?

Пока я здесь, # 2 тоже может быть хитрым. Есть ли простой способ суммирования без дубликатов?

Любая помощь будет высоко оценена!

Пожалуйста, дайте мне знать, еслилюбая дополнительная информация необходима.

Приведенные ниже примеры данных должны возвращать:

10 для всех

8 для новых

2 для повторов

Выполнение образца менядумая, что если просто вычесть New из All, все повторы вернутся.

enter image description here

1 Ответ

0 голосов
/ 14 декабря 2018

Я не уверен, что вам действительно нужно использовать VBA, поскольку этот вопрос, кажется, может быть решен с помощью функций по умолчанию.

Ключевая проблема здесь состоит в том, чтобы идентифицировать все повторяющиеся записи уникального ключа Part-Customer-Job-QTY-Dept,Обратите внимание, что вам на самом деле не нужно заботиться о ID и Pass/Fail, так как эти значения не влияют на ваши вычисления.

Как только вы узнаете уникальный ключ, вы можете решить следующие шаги:

  1. Создайте конкатенацию нового столбца для создания уникального ключа.(F1)=A1&B1&C1&D1&E1
  2. Для каждой строки подсчитайте появление уникального ключа в столбце. (G1)=countif(F:F,F1)
  3. Вы можете определить, что запись дублируется, если число больше единицы, то естьнесколько строк в данных, использующих один и тот же уникальный ключ. =countif(G:G,">1")
  4. Получив ответ «Да / Нет» в каждой строке, вы просто подсчитываете «Да», чтобы получить количество повторений, таким образом, новые задания в соответствии сваше определение.

Это также может быть реализовано в VBA по той же логике.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...