Подсчет минимальных значений из нескольких столбцов - PullRequest
0 голосов
/ 06 сентября 2018

У меня есть таблица, и мне нужно посчитать срок годности, но у меня есть два столбца, и мне нужно посчитать наименьшее значение из них. Какая функция поможет с этим. Вот небольшой пример

Name    Expiration date    Break date
Nr.1    31-Aug-2019        28-Feb-2023
Nr 2    18-Oct-2018 
Nr 3    30-Sep-2018        21-Jun-2017
Nr. 4   1-Jan-2018

Как видите, здесь будет:

2017 2018 2019 2020
1    2     1    0

Ответы [ 4 ]

0 голосов
/ 06 сентября 2018

= SUM (IF (YEAR (IF ($ B $ 2: $ B $ 5

Примечание. Это формула массива. Вы должны вставить ее в ячейку, затем нажать ctrl+shift+enter, а затем скопировать и вставить ее в таблицу.

Ячейка работает, если ваши данные представлены в формате A1: C5, и у вас есть годы, которые вы хотите проверить на E1: H10. Затем вы можете вставить приведенную выше формулу в E2, а затем вставить ее в таблицу.

Example of how the data should be set up for the formula to function

Формула массива выполняет следующие действия:

  1. Первый оператор IF проверяет, какое значение меньше, ColB или ColC.
  2. Встроенные операторы IF затем проверяют, чтобы убедиться, что значения не равны 0. Если они равны 0, они возвращают другой столбец, если они не равны 0, они возвращают свое собственное значение, отличное от 0.
  3. Функция YEAR извлекает год из каждой даты.
  4. Последняя предварительно сформированная функция IF (но первая, записанная в функции) проверяет год по ячейке выше суммы. Если год совпадает, возвращается 1, если false, 0
  5. Оператор SUM просто суммирует все истинные значения
0 голосов
/ 06 сентября 2018

Немного более короткая версия формулы для столбца помощника:

=YEAR(IF(COUNT(B2:C2)=2,MIN(B2:C2),B2+C2))

с той разницей, что будет возвращен год (отличный от 1900), если в столбце Expiration date есть пробелэто рядом с заполненной ячейкой в ​​столбце Break date.

Для фактических подсчетов я бы выбрал технику, которая была признана не по теме для SO.

0 голосов
/ 06 сентября 2018

Решение без вспомогательного столбца

формула:

=SUMPRODUCT(--((($B:$B<$C:$C)+($C:$C=""))*($B:$B<>"")*(YEAR($B:$B)=E$1))+((($C:$C<$B:$B)+($B:$B=""))*($C:$C<>"")*(YEAR($C:$C)=E$1)))

Предположения:

  • Данные в столбцах A: C, с датой истечения срока действия в B и датой перерыва в C
  • Год (2017,2018,2019,2010) в E1: H1

enter image description here

Формула может быть перемещена горизонтально от E2 до H2.

Formula Logic (псевдокод):

IF(OR(AND(OR(B<C,C=""),B<>"",YEAR(B)=X),AND(OR(C<B,B=""),C<>"",YEAR(C)=X))) THEN TRUE

Альтернативное решение с использованием таблицы

Поскольку заголовки нарушают исходную формулу, вам нужно будет сделать ссылки на столбцы более конкретными для того, где на самом деле находятся данные. Стол - самый простой способ сделать это.

=SUMPRODUCT(--(((Table1[Expiration Date]<Table1[Break Date])+(Table1[Break Date]=""))*(Table1[Expiration Date]<>"")*(YEAR(Table1[Expiration Date])=$E1))+(((Table1[Break Date]<Table1[Expiration Date])+(Table1[Expiration Date]=""))*(Table1[Break Date]<>"")*(YEAR(Table1[Break Date])=$E1)))

Таблицы плохо играют с формулами, перетаскиваемыми горизонтально, поэтому я поместил годы в столбец:

enter image description here

0 голосов
/ 06 сентября 2018

Вы можете использовать дополнительный «вспомогательный» столбец, который принимает минимум между датой истечения срока и датой перерыва. (С учетом возможности того, что дата перерыва будет пустой)

enter image description here

Тогда ваше уравнение для нахождения итогов за каждый год будет просто COUNTIF в этом новом столбце.

enter image description here

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