2015-04-06 3 views
1

У меня есть лист Excel с датой, днем, временем начала и окончания, например, мне нужно найти счет дневного света как «воскресенье» с заданным временем начала и время окончания во всех датах, где оно должно считаться равным 1 для любого количества повторений в тот же день. Я использовал следующую формулу, которая подсчитывает значения с повторением в ту же дату.Excel: подсчитать значения на основе условия, но опустить повторяющиеся значения

enter image description here

========================= Sample Data ============== ======================

Open Time DATES day month year days time 
1/5/2014 1:24 1/5/2014 5 1 2014 Sunday 1:24 
1/5/2014 3:05 1/5/2014 5 1 2014 Sunday 3:05 
1/5/2014 2:13 1/5/2014 5 1 2014 Sunday 2:13 
1/5/2014 3:10 1/5/2014 5 1 2014 Sunday 3:10 
1/5/2014 8:41 1/5/2014 5 1 2014 Sunday 8:41 
1/5/2014 16:27 1/5/2014 5 1 2014 Sunday 16:27 
1/5/2014 11:30 1/5/2014 5 1 2014 Sunday 11:30 
1/5/2014 12:35 1/5/2014 5 1 2014 Sunday 12:35 
1/5/2014 9:34 1/5/2014 5 1 2014 Sunday 9:34 
1/5/2014 11:21 1/5/2014 5 1 2014 Sunday 11:21 
1/5/2014 10:02 1/5/2014 5 1 2014 Sunday 10:02 
1/5/2014 10:11 1/5/2014 5 1 2014 Sunday 10:11 
1/5/2014 11:01 1/5/2014 5 1 2014 Sunday 11:01 
1/5/2014 11:28 1/5/2014 5 1 2014 Sunday 11:28 
1/5/2014 12:53 1/5/2014 5 1 2014 Sunday 12:53 
1/5/2014 11:58 1/5/2014 5 1 2014 Sunday 11:58 
1/5/2014 12:19 1/5/2014 5 1 2014 Sunday 12:19 
1/5/2014 12:53 1/5/2014 5 1 2014 Sunday 12:53 
1/5/2014 17:44 1/5/2014 5 1 2014 Sunday 17:44 
1/5/2014 15:02 1/5/2014 5 1 2014 Sunday 15:02 
1/5/2014 13:01 1/5/2014 5 1 2014 Sunday 13:01 
1/5/2014 15:03 1/5/2014 5 1 2014 Sunday 15:03 
1/5/2014 15:08 1/5/2014 5 1 2014 Sunday 15:08 
1/5/2014 16:01 1/5/2014 5 1 2014 Sunday 16:01 
1/5/2014 17:00 1/5/2014 5 1 2014 Sunday 17:00 
1/5/2014 20:18 1/5/2014 5 1 2014 Sunday 20:18 
1/5/2014 16:45 1/5/2014 5 1 2014 Sunday 16:45 
1/5/2014 17:53 1/5/2014 5 1 2014 Sunday 17:53 
1/5/2014 19:55 1/5/2014 5 1 2014 Sunday 19:55 
1/5/2014 18:03 1/5/2014 5 1 2014 Sunday 18:03 
1/5/2014 19:28 1/5/2014 5 1 2014 Sunday 19:28 
1/5/2014 18:47 1/5/2014 5 1 2014 Sunday 18:47 
1/5/2014 18:54 1/5/2014 5 1 2014 Sunday 18:54 
1/5/2014 19:01 1/5/2014 5 1 2014 Sunday 19:01 
1/5/2014 19:09 1/5/2014 5 1 2014 Sunday 19:09 
1/5/2014 19:17 1/5/2014 5 1 2014 Sunday 19:17 
1/5/2014 19:32 1/5/2014 5 1 2014 Sunday 19:32 
1/5/2014 19:45 1/5/2014 5 1 2014 Sunday 19:45 
1/5/2014 19:40 1/5/2014 5 1 2014 Sunday 19:40 
1/5/2014 19:49 1/5/2014 5 1 2014 Sunday 19:49 
1/5/2014 19:59 1/5/2014 5 1 2014 Sunday 19:59 
1/5/2014 19:46 1/5/2014 5 1 2014 Sunday 19:46 
1/5/2014 19:55 1/5/2014 5 1 2014 Sunday 19:55 
1/5/2014 20:05 1/5/2014 5 1 2014 Sunday 20:05 
1/5/2014 20:46 1/5/2014 5 1 2014 Sunday 20:46 
1/5/2014 20:20 1/5/2014 5 1 2014 Sunday 20:20 
1/5/2014 20:41 1/5/2014 5 1 2014 Sunday 20:41 
1/5/2014 22:23 1/5/2014 5 1 2014 Sunday 22:23 
1/5/2014 22:13 1/5/2014 5 1 2014 Sunday 22:13 
1/5/2014 22:45 1/5/2014 5 1 2014 Sunday 22:45 
1/5/2014 22:47 1/5/2014 5 1 2014 Sunday 22:47 
1/5/2014 22:18 1/5/2014 5 1 2014 Sunday 22:18 
1/5/2014 22:28 1/5/2014 5 1 2014 Sunday 22:28 
1/5/2014 22:44 1/5/2014 5 1 2014 Sunday 22:44 
1/5/2014 22:40 1/5/2014 5 1 2014 Sunday 22:40 
1/5/2014 22:47 1/5/2014 5 1 2014 Sunday 22:47 
1/5/2014 22:55 1/5/2014 5 1 2014 Sunday 22:55 
1/5/2014 22:54 1/5/2014 5 1 2014 Sunday 22:54 
1/5/2014 22:52 1/5/2014 5 1 2014 Sunday 22:52 
1/5/2014 23:04 1/5/2014 5 1 2014 Sunday 23:04 
1/5/2014 23:05 1/5/2014 5 1 2014 Sunday 23:05 
1/5/2014 23:06 1/5/2014 5 1 2014 Sunday 23:06 
1/12/2014 1:03 1/12/2014 12 1 2014 Sunday 1:03 
1/12/2014 3:50 1/12/2014 12 1 2014 Sunday 3:50 
1/12/2014 7:50 1/12/2014 12 1 2014 Sunday 7:50 
1/12/2014 8:23 1/12/2014 12 1 2014 Sunday 8:23 
1/12/2014 10:18 1/12/2014 12 1 2014 Sunday 10:18 
1/12/2014 10:30 1/12/2014 12 1 2014 Sunday 10:30 
1/12/2014 12:08 1/12/2014 12 1 2014 Sunday 12:08 
1/12/2014 8:19 1/12/2014 12 1 2014 Sunday 8:19 
1/12/2014 8:33 1/12/2014 12 1 2014 Sunday 8:33 
1/12/2014 10:09 1/12/2014 12 1 2014 Sunday 10:09 
1/12/2014 9:14 1/12/2014 12 1 2014 Sunday 9:14 
1/12/2014 9:57 1/12/2014 12 1 2014 Sunday 9:57 
1/12/2014 10:10 1/12/2014 12 1 2014 Sunday 10:10 
1/12/2014 10:12 1/12/2014 12 1 2014 Sunday 10:12 
1/12/2014 10:14 1/12/2014 12 1 2014 Sunday 10:14 
1/12/2014 10:15 1/12/2014 12 1 2014 Sunday 10:15 
1/12/2014 10:25 1/12/2014 12 1 2014 Sunday 10:25 
1/12/2014 10:17 1/12/2014 12 1 2014 Sunday 10:17 
1/12/2014 10:20 1/12/2014 12 1 2014 Sunday 10:20 
1/12/2014 11:08 1/12/2014 12 1 2014 Sunday 11:08 
1/12/2014 10:21 1/12/2014 12 1 2014 Sunday 10:21 
1/12/2014 10:23 1/12/2014 12 1 2014 Sunday 10:23 
1/12/2014 10:29 1/12/2014 12 1 2014 Sunday 10:29 
1/12/2014 10:29 1/12/2014 12 1 2014 Sunday 10:29 
1/12/2014 13:50 1/12/2014 12 1 2014 Sunday 13:50 
1/12/2014 15:59 1/12/2014 12 1 2014 Sunday 15:59 
1/12/2014 15:17 1/12/2014 12 1 2014 Sunday 15:17 
1/12/2014 10:44 1/12/2014 12 1 2014 Sunday 10:44 
1/12/2014 10:32 1/12/2014 12 1 2014 Sunday 10:32 
1/12/2014 10:36 1/12/2014 12 1 2014 Sunday 10:36 
1/12/2014 10:38 1/12/2014 12 1 2014 Sunday 10:38 
1/12/2014 10:41 1/12/2014 12 1 2014 Sunday 10:41 
1/12/2014 10:48 1/12/2014 12 1 2014 Sunday 10:48 
1/12/2014 10:55 1/12/2014 12 1 2014 Sunday 10:55 
1/12/2014 11:00 1/12/2014 12 1 2014 Sunday 11:00 
1/12/2014 11:38 1/12/2014 12 1 2014 Sunday 11:38 
1/12/2014 11:53 1/12/2014 12 1 2014 Sunday 11:53 
1/12/2014 11:47 1/12/2014 12 1 2014 Sunday 11:47 
1/12/2014 12:03 1/12/2014 12 1 2014 Sunday 12:03 
1/12/2014 12:23 1/12/2014 12 1 2014 Sunday 12:23 
1/12/2014 12:39 1/12/2014 12 1 2014 Sunday 12:39 
1/12/2014 12:38 1/12/2014 12 1 2014 Sunday 12:38 
1/12/2014 12:52 1/12/2014 12 1 2014 Sunday 12:52 
1/12/2014 13:11 1/12/2014 12 1 2014 Sunday 13:11 
1/12/2014 13:31 1/12/2014 12 1 2014 Sunday 13:31 
1/12/2014 13:20 1/12/2014 12 1 2014 Sunday 13:20 
1/12/2014 14:02 1/12/2014 12 1 2014 Sunday 14:02 
1/12/2014 14:00 1/12/2014 12 1 2014 Sunday 14:00 
1/12/2014 16:40 1/12/2014 12 1 2014 Sunday 16:40 
1/12/2014 16:56 1/12/2014 12 1 2014 Sunday 16:56 
1/12/2014 15:29 1/12/2014 12 1 2014 Sunday 15:29 
1/12/2014 16:11 1/12/2014 12 1 2014 Sunday 16:11 
1/12/2014 16:22 1/12/2014 12 1 2014 Sunday 16:22 
1/12/2014 17:00 1/12/2014 12 1 2014 Sunday 17:00 
1/12/2014 17:42 1/12/2014 12 1 2014 Sunday 17:42 
1/12/2014 17:19 1/12/2014 12 1 2014 Sunday 17:19 
1/12/2014 20:50 1/12/2014 12 1 2014 Sunday 20:50 
1/12/2014 18:44 1/12/2014 12 1 2014 Sunday 18:44 
1/12/2014 18:34 1/12/2014 12 1 2014 Sunday 18:34 
1/12/2014 18:25 1/12/2014 12 1 2014 Sunday 18:25 
1/12/2014 18:45 1/12/2014 12 1 2014 Sunday 18:45 
1/12/2014 18:44 1/12/2014 12 1 2014 Sunday 18:44 
1/12/2014 20:10 1/12/2014 12 1 2014 Sunday 20:10 
1/12/2014 18:58 1/12/2014 12 1 2014 Sunday 18:58 
1/12/2014 19:44 1/12/2014 12 1 2014 Sunday 19:44 
1/12/2014 21:25 1/12/2014 12 1 2014 Sunday 21:25 
1/12/2014 20:12 1/12/2014 12 1 2014 Sunday 20:12 
1/12/2014 21:27 1/12/2014 12 1 2014 Sunday 21:27 
1/12/2014 21:52 1/12/2014 12 1 2014 Sunday 21:52 
1/12/2014 22:40 1/12/2014 12 1 2014 Sunday 22:40 
1/12/2014 23:19 1/12/2014 12 1 2014 Sunday 23:19 
1/12/2014 22:20 1/12/2014 12 1 2014 Sunday 22:20 
1/12/2014 22:38 1/12/2014 12 1 2014 Sunday 22:38 
1/12/2014 23:29 1/12/2014 12 1 2014 Sunday 23:29 

===================== ====== Sample Data ==================================

=COUNTIFS(E:E,"Sunday",F:F,">="&H2,F:F,"<="&I2) 

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

+0

вы отформатировали три временных столбца как ВРЕМЯ? – AHC

+0

@AHC Да, я отформатирован. В то время у меня нет проблем. Теперь мне нужна моя формула для подсчета значений, где Day = «Sunday» starttime = «0:00» и endtime = «0:59» в течение всех дат, но должно учитываться только один раз для определенной даты. Теперь он считается более одного раза для даты, поскольку формула подобна этому. – krishna

+0

данных, приведенных выше, недостаточно, отображается только одна дата. попробуйте ответ Стивена и посмотрите, работает ли он, в противном случае укажите столбец репрезентативных данных и ожидаемых результатов. – AHC

ответ

0

я не знаю, почему вы используете в DAYNAME (E) вместо даты (A), чтобы посмотреть его, но это должно работать для вас, так как все это, кажется, воскресенье

=if(COUNTIFS(E:E,"Sunday",F:F,">="&H2,F:F,"<="&I2)>1,1,0) 

в противном случае пожалуйста обеспечить более выборочные данные

+0

Причина, по которой я не использовал дату, заключается в том, что я хочу найти счетчик, в котором временной диапазон берется из времени начала и окончания времени для всех дат. Часть, где мне нужна помощь, - это счет, который должен быть сделан для всех дат на этой временной шкале, но если есть повторение для конкретной даты, оно не должно считаться снова. – krishna

+0

Вы хотите перетащить формулу вниз и получить 1 в первой из каждой даты, которая соответствует критериям вашего поиска только общего количества в одной ячейке для всех данных? –

+0

да, например, дата 1/5/2014, которая находится в воскресенье, и имеет время 1:35, которое подпадает под 1: 00-1: 59, поэтому счет теперь равен 1 и другие данные с 1/5/2014, который является воскресным и имеет время 1:10, которое подпадает под 1: 00-1: 59, которое он не должен подсчитывать, другие данные с 1/5/2014 в тот же день и время составляют 2:38 утра, который подпадает под 2: 00-2 : 59 теперь счет увеличится до 2. – krishna

0

вот способ ответить на ваш вопрос:

здесь является sample sheet with the answer
вы можете следовать инструкциям в приведенном выше загружаемом листа.
здесь экран
enter image description here
вам необходимо убедиться, что столбец H форматируется как время.
, то вам нужно положить начало/конец метки времени по горизонтали, начиная с K к AH, в два ряда (начало строки и конец строки).
тогда вы тянете динамически уникальные даты из колонки A и поместить их в колонке J, используя эту формулу:

=IFNA(INDEX($A$2:$A$229730,MATCH(0,COUNTIF($J$2:J2,$A$2:$A$229730),0)),"") 


вы кладете эту формулу в J3 и убедитесь, что вы пресс ctrl + Смещение + введите чтобы рассчитать формулу.
затем перетащить вниз и заполнить до тех пор, пока все ваши уникальные даты в колонке J.

затем поставить следующую формулу в K3 для подсчета количества меток времени на каждую дату на основе диапазона (старт/конец).

=COUNTIFS($A:$A,$J3,$G:$G,"Sunday",$H:$H,">="&K$1,$H:$H,"<="&K$2) 


затем перетащить и наполните эту формулу вправо, пока AH3, а затем выбрать из K3 к AH3 и перетащить и заполняют вниз до последней уникальной даты в колонке J.

надеюсь, что это сработает для вас. вы всегда можете посмотреть примерный лист выше. Сообщите мне, если у вас есть проблемы.



+0

Спасибо за ответ, но у меня есть 229730 строк эта формула не работает – krishna

+0

@krishna: просто: замените 999 на 229730 в формуле и перетащите и заполните до 229730. Я сделал он в формуле там – AHC

+0

дает то же значение, что и я использую datetime datatype, у которого есть дата, а также время из-за этого, есть ли что-нибудь, что я могу сделать по этому поводу. – krishna

0

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

Вы можете сделать это с помощью FREQUENCY функции, но это лучше, чтобы ограничить диапазоны данных, а не использовать целые столбцы, так предполагая, данные в строках 2 до 1000 вы можете использовать эту «формулу массива» в строке 2

=SUM(IF(FREQUENCY(IF(E$2:E$1000="Sunday",IF(F$2:F$1000>=H2,IF(F$2:F$1000<=I2,A$2:A$1000))),INT(A$2:A$1000)),1))

подтвердил CTRL +SHIFT + ENTER и скопировал вниз колонны

при настройке FREQUENCY «Бункеры» должны быть элементом даты ваших дат в столбце A, тогда любые повторяющиеся даты (соответствующие условиям) будут отправляться в один и тот же банк, и формула просто подсчитывает каждый заполненный ящик, следовательно, не считая дат дважды

комментарии ниже я думаю, что эта формула будет лучшим вариантом для данных через месяц только

=SUMPRODUCT(0+(COUNTIFS(E:E,"Sunday",F:F,">="&H2,F:F,"<="&I2,A:A,">="&INT(MIN(A:A))+{7,14,21,28,35}-WEEKDAY(MIN(A:A)-1),A:A,"<"&INT(MIN(A:A))+{7,14,21,28,35}-WEEKDAY(MIN(A:A)-1)+1)>0))

Это будет выглядеть конкретно на Sundays в месяц и определить, какие из этих Sundays есть запись для определенного времени период, поэтому результатом этой формулы будет 5 не более

В течение года вы можете использовать эту версию:

=SUMPRODUCT(0+(COUNTIFS(F:F,">="&H2,F:F,"<="&I2,E:E,"Sunday",A:A,">="&INT(MIN(A:A))+ROW(INDIRECT("1:53"))*7-WEEKDAY(MIN(A:A)-1),A:A,"<"&INT(MIN(A:A))+ROW(INDIRECT("1:53"))*7-WEEKDAY(MIN(A:A)-1)+1)>0))

В другие дни недели вы можете изменить 2 экземпляра MIN (A: A) -1. Для использования в понедельник -2, на вторник -3 и т. Д.

+0

Спасибо, у меня есть 229720 записей в столбце, будет ли это работать? – krishna

+0

Это может быть немного медленнее с такими данными! Я бы порекомендовал вам попробовать формулу сначала в одной ячейке, прежде чем копировать ее, и посмотреть, как долго это займет - очевидно, вам придется увеличить размеры диапазона в формуле –

+0

Я пробовал тестирование и кажется очень медленным, знаете ли вы, сколько ** разные ** даты, которые у вас есть в данных? Это на определенный период? Как только у вас появятся воскресные цифры, вы планируете вычислять цифры за другие дни? –

Смежные вопросы