Как получить эти верхние и нижние строки на основе правил в формуле электронной таблицы? - PullRequest
0 голосов
/ 25 апреля 2019

Я приложил электронную таблицу со всей моей работой.До сих пор мне не удавалось адекватно получать строки для высоких и низких значений, основываясь на данных правилах, перечисленных в электронной таблице.Я хорошо это задокументировал, и мне потребуется немного времени, чтобы изучить концепцию, чтобы реализовать идеальную формулу электронной таблицы.Формула с одним столбцом была бы потрясающей, но при необходимости я был бы доволен больше.

https://1drv.ms/x/s!AgYDS7saPf0DhKVX-ansCV-t5vimtA

В столбце CI - моя первоначальная формула (ячейки CI42: CK42 закрашены серым, потому что ониотличается от тех, что ниже).Столбцы CJ & CK - это попытка разбить формулу CI, чтобы решить проблему с противоречивыми результатами.Обратите внимание, что все значения, выделенные красным цветом в столбцах CI: CK, неверны.

Ячейка CI43:

=IF(AND(CH42>=CH$38,CH43<CH$38),ROW(INDEX(INDIRECT("CI"&ROW()&":CI"&ROW()-2+MATCH(TRUE,INDEX($CH43:CH$121>=CH$38,0),0)),MATCH(MIN(INDIRECT("BU"&ROW()&":BU"&ROW()-2+MATCH(TRUE,INDEX($CH43:CH$121>=CH$38,0),0))),INDIRECT("BU"&ROW()&":BU"&ROW()-2+MATCH(TRUE,INDEX($CH43:CH$121>=CH$38,0),0)),0))),IF(AND(CH42<CH$38,CH43>=CH$38),ROW(INDEX(INDIRECT("CI"&ROW()&":CI"&ROW()-2+MATCH(TRUE,INDEX($CH43:CH$121<CH$38,0),0)),MATCH(MAX(INDIRECT("BT"&ROW()&":BT"&ROW()-2+MATCH(TRUE,INDEX($CH43:CH$121<CH$38,0),0))),INDIRECT("BT"&ROW()&":BT"&ROW()-2+MATCH(TRUE,INDEX($CH43:CH$121<CH$38,0),0)),0))),""))

Ячейка CJ43:

=IF(AND(CH42>=(CH$38+5),CH43<(CH$38+5)),ROW(INDEX(INDIRECT("CJ"&ROW()&":CJ"&ROW()-2+MATCH(TRUE,INDEX($CH43:CH$121>=(CH$38+5),0),0)),MATCH(MIN(INDIRECT("BU"&ROW()&":BU"&ROW()-2+MATCH(TRUE,INDEX($CH43:CH$121>=(CH$38+5),0),0))),INDIRECT("BU"&ROW()&":BU"&ROW()-2+MATCH(TRUE,INDEX($CH43:CH$121>=(CH$38+5),0),0)),0))),"")

Ячейка CK43:

=IF(AND(CH42<(CH$38-5),CH43>=(CH$38-5)),ROW(INDEX(INDIRECT("CK"&ROW()&":CK"&ROW()-2+MATCH(TRUE,INDEX($CH43:CH$121<(CH$38-5),0),0)),MATCH(MAX(INDIRECT("BT"&ROW()&":BT"&ROW()-2+MATCH(TRUE,INDEX($CH43:CH$121<(CH$38-5),0),0))),INDIRECT("BT"&ROW()&":BT"&ROW()-2+MATCH(TRUE,INDEX($CH43:CH$121<(CH$38-5),0),0)),0))),"")

Ячейка CL43:

=IF(AND(CH44>=55,CH43<55)=TRUE,TRUE,"")

Ячейка CM43:

=IF(AND(CH44<=45,CH43>45)=TRUE,TRUE,"")

Ячейка CN43:

=IF(AND(CH44<=45,CH43>45)=TRUE,TRUE,"")

Ячейка CO43:

=IF(AND(CH44>=55,CH43<55)=TRUE,TRUE,"")

Значения в столбцах BT, BU и CH:выделены жирным шрифтом и подчеркнуты, чтобы показать фактические номера строк, которые мы хотим вернуть в формуле на основе данных правил.Обратите внимание, что при соблюдении правила следующий ряд в последовательности всегда будет противоположен последнему, игнорируя нейтральную среднюю зону, показанную в ячейках CN72: CO78.(Высокий, низкий, высокий, низкий)

Столбцы CL: CO содержат правильную информацию, основанную на правилах, но здесь мне нужна помощь с формулой, которая может учитывать эти результаты и отображать правильные номера строк.Было бы неплохо использовать одну формулу для перетаскивания столбца CI, но если бы у меня были хотя бы точные значения BOTTOM (столбец CJ) и точные значения TOP (столбец CK), я мог бы объединить их.

https://1drv.ms/x/s!AgYDS7saPf0DhKVX-ansCV-t5vimtA

...