
У меня есть электронная таблица с большим количеством строк. Каждая строка имеет 3 столбца (B, C, D), которые могут содержать числовые данные, собранные в три разных момента времени. B = первый момент времени, C = второй момент времени, D = третий момент времени. Если в определенный момент времени собрать данные не удалось, ячейка содержит ноль.
Для каждой строки я хотел бы
- Создайте «Итоговой столбец» (столбец E) для каждой строки.
- Введите «нет результата» в итоговый столбец (столбец E) для любой строки, содержащей только одно число (независимо от того, находится ли оно в столбце B, C или D).
- Вычтите число в столбце с самой ранней точкой сбора данных, содержащем число, из числа в столбце с самой ранней точкой сбора данных, содержащем число.
Кто-нибудь может помочь?
решение1
Вы можете использовать формулу массива с комбинацией функций ЕСЛИ, СЧЁТЕСЛИ, ПРОСМОТР и ИНДЕКС.
Формула ячейки E2 (общий столбец):
=IF(COUNTIF(B2:D2,">0") < 2, "no result",LOOKUP(9.999999999E+307,IF(B2:D2>0,B2:D2)) - INDEX(B2:D2,MATCH(TRUE,INDEX(B2:D2>0,0),)))
Находясь в формуле, сделайте ее формулой массива, нажав CTRL + SHIFT + ENTER, чтобы появились фигурные скобки. Перетащите ее вниз.
Сначала подсчитывается количество значений больше 0 в строке. Если их меньше 2, то отображается «нет результата». В противном случае выполняется оставшаяся часть формулы. Оставшаяся часть ищет последнее ненулевое значение в строке и вычитает первое ненулевое значение в строке.
решение2
Приветствую, Стивен. Хотя ответ Изолированного — это уровень босса и его можно экстраполировать на любое количество входных столбцов, эта упрощенная формула также должна работать для простейшего сценария с тремя входными столбцами.
=IF(COUNTIF(B2:D2,">0") < 2, "No result", IF(B2=0,D2-C2,IF(D2=0,C2-B2,D2-B2)) )
решение3
Учитывая небольшое количество столбцов, я бы предпочел сделать его максимально простым, чтобы любой мог проследить логику и устранить неполадки. Например:
=IF(COUNTIF(B2:D2,">0")<2,"No result", IF(D2>0,D2,C2)-IF(B2>0,B2,C2))