Существует ли формула EXCEL, которая подсчитывает, сколько раз данные Excel «переключаются» между биномиальным кодированием (т. Е. Данными, закодированными как 1 или 2)? - PullRequest
2 голосов
/ 09 июля 2020

Ребята, были бы очень признательны за помощь;

Если у меня есть следующие значения данных в Excel (3 примера ниже), где данные закодированы как 1 или 2, знает ли кто-нибудь формулу Excel, которая может подсчитывать сколько «переключателей» встречается в последовательности значений? Под «переключателем» я подразумеваю, когда 1 переключается на 2, и наоборот (когда 2 переключаются на 1).

Например;

1, 1 , 1, 1, 1, 1, 1, 2, 2 (здесь 1 переключатель)

1, 2, 2, 1, 1, 1, 1, 1, 1 (здесь два переключателя)

1, 2, 2, 1, 1, 1, 1, 2, 2 (здесь три переключателя)

Пока что я могу использовать следующую формулу (см. Ниже), чтобы увидеть, есть ли вообще переключатель в последовательности (например, от 2 до 1). Но теперь я пытаюсь подсчитать, сколько переключений происходит в последовательности, а не ЕСЛИ происходит единичное переключение. Поэтому я думаю, что мне, возможно, нужно использовать формулу COUNT вместо формулы FIND?

=IF(ISERROR(FIND("21",TEXTJOIN("",TRUE,[data range of a row]))),FALSE,TRUE)

Любая помощь приветствуется.

Ответы [ 2 ]

2 голосов
/ 09 июля 2020

Если у вас есть данные в ячейках от A1 до I1, используйте эту формулу:

=SUM(ABS(B1:I1-A1:H1))

Я проверил это с вашими тремя входными данными и получил ожидаемые ответы.

0 голосов
/ 09 июля 2020

Если у вас будет доступ к FILTERXML (я считаю, что начиная с Excel 2013), вы можете использовать:

введите описание изображения здесь

Формула в B1:

=COUNT(FILTERXML("<t><s>"&SUBSTITUTE(A1,", ","</s><s>")&"</s></t>","//s[following::*[1]!=.]"))

Для вашего понимания; выражение xpath //s[following::*[1]!=.] вернет все (дочерние) узлы, где первый следующий узел отличается от текущего. Тогда COUNT фактически посчитает эти возвращенные числа. Обратите внимание, что это вернет 0, если в вашей строке не произойдет никаких изменений.

...