Я хотел бы посчитать частоту одинаковых значений в строке. Значение должно занимать не менее двух ячеек и находиться рядом друг с другом.
Я хотел бы разместить изображение здесь, но у меня недостаточно репутаций. В любом случае, скриншот можно найти здесь:https://www.dropbox.com/s/1em9ltssc1ruw0u/stackOverflow_excelIssue_Countfrequencyofsimilarvaluesinbetweenblankcells.jpg?dl=0
J7:BE7 — это поле, куда человек вводит значения — оно соответствует времени с шагом в 30 минут.
В другой части того же листа, в данном случае DD7:EY7, у меня выполняются формулы.
Эта формула находится в (первом столбце) DD7 -- COUNTIF(J7:$BE7,J7)
Эта формула находится в (последнем столбце) EY7 -- COUNTIF(BE7:$BE7,BE7)
Формула в DD7 подсчитывает количество появлений значения в J7 в строке 7 от столбца J до BE.
сценарий 1: эта формула отлично работает, если «оранжевый» встречается только один раз. на моем примере из K7:L7.
Сценарий 2: Проблема возникает, когда «оранжевый» снова появляется в непоследовательной ячейке. Я имею в виду, что «оранжевый» появляется в ячейке K7:L7, а затем снова появляется в ячейке P7:Q7.
в сценарии 1 результатом формулы при проверке K7:L7 является 2, что является искомым значением.
В сценарии 2 результат формулы при проверке K7:L7 равен 4, поскольку она также учитывает «оранжевый», который появляется на K7:L7.
Я надеялся, что подсчет остановится, если M7 будет иметь другое значение. K7:L7 содержит «orange», а M7:N7 — «apple». Или подсчет остановится, если между ними будет пустая ячейка, например, U7:V7 содержит «guava», а T7 пуста, тогда X7:Y7 снова содержит «guava».
фрукты могут занимать от двух до сорока восьми столбцов в каждом ряду.
Я знаю, что это многословно, но я не могу найти других способов объяснить это, английский не мой родной язык.
Заранее благодарю.
~марк
решение1
Если я правильно понял ваш запрос, то следующие формулы будут работать. Мое решение требует фиктивный столбец и вспомогательную строку, но их можно скрыть. Кроме того, вы, вероятно, сможете устранить фиктивный столбец, приложив немного усилий, а вспомогательную строку можно разместить где угодно.
Я предположу, что имена ваших клиентов находятся в строке 2. Я буду использовать столбец A как фиктивный столбец, поэтому данные о назначении начнутся в столбце B. Строка 3 будет вспомогательной строкой. В ячейке B3 введите формулу:
=IF(B2="", "", IF(B2<>C2, 1, C3+1))
Значение:
- Если B2="", имя клиента для этого временного интервала пусто, значит, это свободный временной интервал, поэтому отобразите его пустым.
- В противном случае, если B2<>C2, этот временной интервал и следующий имеют разных клиентов (C2 может быть пустым, а может и нет), поэтому это последний временной интервал для этой встречи. Представим его как 1. В противном случае, считаем в обратном порядке, поэтому предпоследний временной интервал для этой встречи будет 2, третий с конца временной интервал будет 3 и т. д.
В ячейке B4 введите:
=IF(A2<>B2, B3, "")
- Если A2<>B2, этот временной интервал и предыдущий имеют разных клиентов (A2 может быть пустым или нет), поэтому это первый временной интервал для этой встречи. Отобразить B3, который показывает, сколько временных интервалов (полчаса) есть в этой встрече. В противном случае отобразить пустой.
Вот ваши данные по этим формулам:
(Изображение выше ведет на полное изображение.)
Я изменил данные GUAVA, чтобы лучше проиллюстрировать, как это работает:
Вы говорите: «Значение должно занимать не менее двух ячеек…». Если я правильно понимаю, вы можете изменить формулу в строке 4 на:
=IF(AND(A2<>B2,B3>1), B3, "")
т.е. отображать значение B3 только если оно > 1. Здесь показана первая формула строки 4 в строке 4 и измененная формула в строке 5: