Мне нужно записать количество переходов из состояния вниз (0) в состояние вверх (1) в одном столбце excel, и мне интересно, есть ли какая-то логика, подобная этой, доступной в Excel, или я могу запрограммировать такую логику в VBA. Я не очень хорошо, но разбираюсь в VBA, поэтому если какие-либо ссылки доступны, это было бы здорово.
Как записать переход от 0 к 1 в столбце Excel?
4 ответа
вы можете получить количество с одним SUMPRODUCT
формула. Если ваши данные в A1:A25
, вы смогли использовать следующее:
=SUMPRODUCT((A1:A25=0)*(A2:A26=1)*(NOT(ISBLANK(A1:A25))))
это подсчитывает только случаи, когда одно значение в столбце равно 0 (а не пусто) и следующее значение равно 1.
мое решение предполагает, что чистые данные начинаются в ячейке A2 и идут вниз по столбцу A. Для моей Формулы он также не предполагает данных за строкой 1000 (отрегулируйте это вверх для большинства реальных данных.
формула является формулой массива, поэтому введите, используя ctrl + shift + enter
=SUM(IF(A2:A1000=0,IF(A3:A1001=1,1,0),0))
как работает формула.
для каждой ячейки от A2 до A1000 ищем ноль, если есть нулевой взгляд в следующей ячейке вниз. Если есть один в следующей ячейке вниз добавить один к счетчику. Примечание пустой ячейка будет считаться нулем.
конец диапазонов (A1000 и A1001) просто должен быть за концом данных.
если вы только хотите отслеживать изменения от вниз к вверх (предполагая, что ваши данные в столбце А), то все, что вам нужно, это =N(A2>A1)
затем перетащите формулу вниз.
это оценить до TRUE
если значение увеличилось (пошло снизу вверх), то N(boolean)
преобразуется в 1 или 0.
для отслеживания всех изменений состояния вы будете использовать =N(A2<>A1)
для подсчета всех изменений состояния вы бы суммировать столбец.
вы можете использовать формулу для обнаружения переходов от 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 (Одни) в columnt C будет представлять количество переходов из 1 в 0.
- количество 1 (единиц) в столбце D будет представлять количество переходов от 0 до 1.
и в конце вам нужно, чтобы сумма единиц (1) в columnds C и D
В примере ниже:
D18=SUM(C2:C16)
D19=SUM(D2:D16)
Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]