5

Мне нужно записать количество переходов из нижнего состояния (0) в верхнее состояние (1) в одном столбце в Excel, и мне интересно, есть ли какая-то логика, подобная этой, доступная в Excel, или могу ли я программировать такого рода логики в VBA. Однако я не очень хорошо разбираюсь в VBA, поэтому, если есть какие-либо ссылки, это было бы здорово.

4 ответа4

9

Вы можете получить счет с помощью одной формулы SUMPRODUCT . Если ваши данные в A1:A25 , вы можете использовать следующее:

=SUMPRODUCT((A1:A25=0)*(A2:A26=1)*(NOT(ISBLANK(A1:A25))))

Это учитывает только те случаи, когда одно значение в столбце равно 0 (а не пусто), а следующее значение равно 1.

5

Мое решение предполагает чистые данные, начиная с ячейки A2 и переходя вниз к столбцу A. Для моей формулы это также предполагает отсутствие данных после строки 1000 (отрегулируйте это значение для большинства реальных данных.

Формула является формулой массива, поэтому введите, используя Ctrl + Shift + Enter

=SUM(IF(A2:A1000=0,IF(A3:A1001=1,1,0),0))

Как работает формула

Для каждой ячейки от A2 до A1000 ищите ноль, если в следующей ячейке есть ноль. Если в следующей ячейке есть один, добавьте его к счетчику. Обратите внимание, что пустая ячейка будет считаться нулем.

Конец диапазонов (A1000 и A1001) просто должен быть за концом данных.

3

Если вы хотите отслеживать изменения только снизу вверх (при условии, что ваши данные находятся в столбце A), все, что вам нужно, это =N(A2>A1) затем перетащите формулу вниз.

Это оценивается как TRUE если значение увеличилось (снизилось вверх), тогда N(boolean) преобразуется в это значение в 1 или 0.

Чтобы отслеживать все изменения состояния, вы должны использовать =N(A2<>A1)

Чтобы подсчитать все изменения состояния, вы должны суммировать столбец.

2

Вы можете использовать формулу для обнаружения переходов от 1 до 0 и от 0 до 1. Просто будьте осторожны с пустыми клетками!

Рассмотрим следующий пример (см. Скриншот ниже):

столбец B содержит шаблон двоичных данных.

C2 будет содержать следующую формулу:

=IF(AND(NOT(ISBLANK(B3)),B2=1,B3=0),1,0)

D2 будет содержать:

=IF(AND(NOT(ISBLANK(B3)),B2=0,B3=1),1,0)

Вам просто нужно будет автоматически заполнить формулу для столько строк, сколько вам нужно в столбцах C и D.

  • Количество 1 (единиц) в столбце C будет представлять количество переходов от 1 до 0.
  • Количество 1 (единиц) в столбце D будет представлять количество переходов от 0 до 1.

И в конце вам нужно сложить единицы (1) в столбцы C и D

В примере ниже:

D18=SUM(C2:C16)
D19=SUM(D2:D16)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .