Excel: подсчитать количество уникальных / отличных строк в диапазоне с условием


2

У меня есть лист Excel с:

  • в пол. A: номера недель
  • в пол. B: даты (записи в расписании)

Мне нужно знать количество дней, отработанных на каждую неделю. Поэтому мне нужно количество уникальных записей даты за неделю.

Я нашел формулы (оба массива как не-массива), которые обрабатывают это для фиксированного диапазона, но я хочу, чтобы результаты были в другом столбце (за номер недели).

Результат примера набора данных ниже будет (двоеточие просто для ясности):

14: 2 
15: 3 
17: 6 
20: 2 
21: 3 

Если это исходные данные:

14: 4/04/2012
14: 4/04/2012
15: 10/04/2012
15: 10/04/2012
15: 11/04/2012
17: 26/04/2012
17: 26/04/2012
17: 26/04/2012
17: 26/04/2012
17: 27/04/2012
17: 27/04/2012
20: 14/05/2012
20: 14/05/2012
21: 23/05/2012
21: 23/05/2012
21: 25/05/2012

Вы хотите, чтобы формула выводила отдельные номера недель, или вы собираетесь создать список номеров недель независимо? Например, делая копию и удаляя дубликаты.
Nutsch

Что это значит, когда одна и та же дата появляется более одного раза?
Уолтер Митти

@WalterMitty Данные представляют записи расписания для конкретной задачи / этапа. Таким образом, если неделя имеет одну и ту же дату более одного раза, это означает, что на эту дату было 2 записи в расписании.
Бертван

@nutsch, нет, у меня уже есть отдельный список номеров недели.
Бертван

в этом случае приведенный ниже ответ может быть самым простым, если только вам не нужна гибкость сводной таблицы.
Nutsch

Ответы:


3

чтобы подсчитать количество записей, используйте, =countif(A:B,D1)предполагая, что номер вашей недели указан в ячейке D1, а список записей - в столбцах A и B.

Другой вариант - создать сводную таблицу с номерами недель в качестве меток строк и количеством записей в качестве данных. Это даст хорошее резюме, которое можно быстро обновить.


1

Это можно сделать полностью с формулами. Для этого требуется небольшая косвенная адресация и один (но для ясности я сделаю это два) отдельные рабочие столбцы вдоль исходных данных и три дополнительных столбца в таблице результатов:

Я предполагаю, что фактические данные начинаются в строке 3, чтобы учесть некоторые заголовки. Я буду использовать ;для разделения аргументов, что не является стандартом для США. Я не буду предполагать, что даты отсортированы . С этим предположением решение будет проще.

  1. Ячейка H2 (Сколько строк на входе): =COUNT(A3:A1048576)
  2. Cell C3 (динамический диапазон просмотра): ничего
  3. Клетки C4: C1000: =ADDRESS(ROW(A$3);COLUMN(A$3)) & ":" & ADDRESS(ROW(A3);COLUMN(A3))
  4. Ячейка D3 (уникальна): TRUE
  5. Ячейка D4: D1000: =COUNTIF(INDIRECT(C4);A4)=0
  6. Ячейка E3 (номер уникальной записи): 1
  7. Ячейка Е4: Е1000: =IF(D4;E3+1;E3)
  8. Ячейка I2 (сколько уникальных найдено): =OFFSET(E3;H2-1;0)
  9. Ячейка J2 (диапазон дней недели): =ADDRESS(ROW(A3);COLUMN(A3);4) & ":" & ADDRESS(ROW(A3)-1+$H$2;COLUMN(A3);4)
  10. Ячейка K2 (Nr уникального диапазона дней недели): =ADDRESS(ROW(E3);COLUMN(E3);4) & ":" & ADDRESS(ROW(E3)-1+$H$2;COLUMN(E3);4)
  11. Ячейка Н5 (счетчик): 1
  12. Ячейка Н6: Н100 =H5+1
  13. Ячейка I5: I100 (позиция): =MATCH(H5;INDIRECT($K$2);0)
  14. Ячейка J5: J100 (день недели): =OFFSET($A$3;I5-1;0)
  15. Ячейка К5: К100 (Количество): =COUNTIF(INDIRECT($J$2);J5)

Конечный результат находится в диапазоне K5: K100.

Обратите внимание, что хотя я работаю с косвенными формулами, решение будет работать, если вы вставите столбец в любом месте или удалите столбец F: F из G: G. Вы также можете перемещать ячейки, если вы храните столбцы с данными вместе.

Важно хранить все в одном листе. Если вы настаиваете на переносе таблицы H4: K100 на другой лист, вам следует изменить адреса в ячейках J2 и K2, чтобы они включали имя листа.

введите описание изображения здесь


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.