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

3 ответа3

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. Ячейка E4: E1000: =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 (номер уникального диапазона дней недели): =ADDRESS(ROW(E3);COLUMN(E3);4) & ":" & ADDRESS(ROW(E3)-1+$H$2;COLUMN(E3);4)
  11. Ячейка Н5 (счетчик): 1
  12. Ячейка H6: H100 =H5+1
  13. Ячейка I5: I100 (положение): =MATCH(H5;INDIRECT($K$2);0)
  14. Ячейка J5: J100 (день недели): =OFFSET($A$3;I5-1;0)
  15. Ячейка K5: K100 ( Количество ): =COUNTIF(INDIRECT($J$2);J5)

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

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

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

0

Сводная таблица может быть проще

пример

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