Подсчет неповторяющихся клеток в Excel

246
user173897

У меня есть столбец (текст) значений. Я хочу посчитать, сколько раз возникает непустая ячейка, так что ее значение отличается от значения ячейки, расположенной непосредственно над ней. Я не хочу просто подсчета непустых ячеек или общего числа ячеек минус количество пустых ячеек.

Например, если столбец имеет форму (A, B, B, A, A, A, _, A, B, C, B), где « A» и « B» и « C» представляют некоторый текст (такой, что они отличаются друг от друга), а « _» (подчеркивание) представляет пустую ячейку, то количество, которое я хочу, будет 7 потому что:

  • « A» В первой записи имеет значение.
  • " B" Во второй записи считается.
  • Знак " B" в третьей записи не считается.
  • " A" В четвертой записи считается.
  • « A» В пятой и шестой записи не учитываются, каждый.
  • " _" В седьмой записи не считается, потому что это пустое.
  • Каждая последующая запись считается, потому что каждая не является пустой и отличается от непосредственно предшествующей записи.

Как мне сделать такую ​​функцию?

1
Возможно, будет использоваться какая-то функция CountIf, но я не уверен, как сделать условие зацикливать весь столбец (и я также не знаю, как избежать подсчета пустых ячеек). user173897 6 лет назад 0

2 ответа на вопрос

3
PeterH

Вы можете попробовать следующее, дайте мне знать, как это работает, теоретически на этом наборе данных я получил 7, но не уверен на 100%, что я понял все критерии.

=1+SUMPRODUCT(--($A$1:$A$11<>OFFSET($A$1:$A$11,1,0)),--(OFFSET($A$1:$A$11,1,0)<>"")) 
Я думаю, что это сработало! Я проверял это, и это кажется нормальным. Спасибо! user173897 6 лет назад 0
Хотели бы вы, чтобы по какой-либо причине я вновь объяснил цели / критерии? user173897 6 лет назад 0
@ user91504, я проверил, и в обоих случаях это ZERO, если в диапазоне данных есть пустая ячейка или записана нижняя строка. Rajesh S 6 лет назад 0
привет @ RajeshS, какие дела вы ссылаетесь? ОП дал только один пример PeterH 6 лет назад 0
@ User91504, я применил вашу формулу для проверки данных OP, выдает ноль и те же данные, что и мои значения формулы (если (Frequency (,,,, считает правильно). Rajesh S 6 лет назад 0
@RajeshS поздравляю с твоей формулой PeterH 6 лет назад 0
Его формула не заслуживает поздравлений. Это громоздко, непрозрачно и дает неправильный ответ. У тебя хорошо, продолжай в том же духе. Bandersnatch 6 лет назад 0
@ User91504, приятно слышать, что вы оба звучите хорошо. Rajesh S 6 лет назад 0
-1
Rajesh S

Нижеприведенная Формула поможет Считать, поскольку OP сказал, что значения NON REPEAT в диапазоне данных.

{=SUM(IF(FREQUENCY(IFERROR(MATCH(A2:A12,A2:A12,0),""),ROW(A2:A12)-ROW(A2)+1)=0,1))} 

NB: я изменил предыдущую формулу и включил IFERROR, потому что OP упомянул, что UNDERSCORE является пустой ячейкой.

И теперь Формула CSE, поэтому завершите ее с помощью Ctrl + Shift + Enter .

Обратите внимание, моя ниже написанная предыдущая Формула будет работать без IFERROR, если вместо Пустой ячейки написано Подчеркивание.

=SUM(IF(FREQUENCY(MATCH(A2:A12,A2:A12,0),ROW(A2:A12)-ROW(A2)+1)=0,1)) 

Надеюсь, это поможет вам.

Эта формула дает # N / A в результате. Предположительно, потому что функция MATCH () возвращает массив с # N / A, соответствующим пробелу в данных примера OP. Исправляем это с помощью IFERROR (): `= SUM (IF (ЧАСТОТА (IFERROR (MATCH (A1: A11, A1: A11,0)," "), ROW (A1: A11) -ROW (A1) +1) = 0 , 1)) `по крайней мере дает числовой ответ 9. Но этот ответ неверен. Может быть, вы бы получили меньше отрицательных голосов, если бы вы на самом деле протестировали формулы, которые вы публикуете? Bandersnatch 6 лет назад 0
@Bandersnatch, пока тестирую формулу, я вставил знак UNDERSCORE в диапазон данных, чтобы моя формула не выдавала ошибку. Но так как OP принял знак UNDERSCORE как BLANK, в этом случае требуется IFERROR. Позвольте мне редактировать формулу. Спасибо за положительный отзыв. Rajesh S 6 лет назад 0

Похожие вопросы