Поиск значения min () в каждой строке с помощью функции arrayformula () в Google Sheets - PullRequest
1 голос
/ 17 февраля 2020

Я как бы в рассоле с листом, над которым я работаю, я искал некоторые разъяснения. По какой-то причине моя старая учетная запись исчезла, что я уже много лет :(, я извиняюсь.

Я пытаюсь получить минимальное значение для каждой строки, в которую я добавил данные. Есть 2 столбца, где мне нужно сначала преобразуйте данные, а затем найдите самое низкое значение для всех 3 столбцов для каждой строки.

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

=MIN( IF(E124 > 0, E124*$E$6), IF(F124 > 0, F124*$F$6), IF(G124 > 0, G124) )

Я пытался использовать другие примеры, однако я не знаком с QUERY. Попытка выполнять простые вычисления (добавление) в формуле сбивает с толку. Пример I ' я пытался использовать:

=QUERY(TRANSPOSE(QUERY(TRANSPOSE(A1:C), 
 "select "&REGEXREPLACE(JOIN( , ARRAYFORMULA(IF(LEN(A1:A&B1:B&C1:C), 
 "min(Col"&ROW(A1:A)-ROW(A1)+1&"),", ""))), ".\z", "")&"")),
 "select Col2")

При добавлении возникает несколько проблем. Я хочу игнорировать пустые ячейки и текст, такой как заголовки. Он не будет переписываться поверх текста и не выполняется (выдает ошибку при перезаписи значения).

Я пытался написать =arrayformula, но не любит вычислять минимальное значение. Он выполняет вычисления для строк.

=ArrayFormula(IF(ISBLANK({E8:E;F8:8;G8:8}), "", added my formula here))

Ниже я кое-что понял работал над в течение нескольких часов я считаю, что проблема заключается в выборе диапазонов внутри функции MIN, которая вызывает проблемы

=arrayformula(IF(LEN(E8:G)<>0, MIN( IF(E8:E > 0, E8:E*$E$6), IF(F8:F > 0, F8:F*$F$6), IF(G8:G > 0, G124) ),)

Если есть способ сделать это, я бы очень признателен за помощь

ССЫЛКА: видимый вариант образца, который я сделал, поскольку мой фактический лист имеет длину более 500 строк. https://docs.google.com/spreadsheets/d/133LJHY3s45ZyxWq0PWew1KikbyNE4MTt-wOeWHBrZY0/edit?usp=sharing

Ответы [ 2 ]

1 голос
/ 17 февраля 2020

попытка (которая работает для всех строк до дна):

=ARRAYFORMULA(TEXT(SUBSTITUTE(QUERY(TRANSPOSE(QUERY(TRANSPOSE(
 IF(E3:G<>"", {E3:E*M5, F3:F*N5, G3:G}, 999^99)),
 "select "&TEXTJOIN(",", 1,
 "min(Col"&ROW(A3:A)-ROW(A3)+1&")")&"")),
 "select Col2", 0), 999^99, ), "$#,###.00"))

0

1 голос
/ 17 февраля 2020

В ячейке O3 повторите попытку

=ArrayFormula(TO_DOLLARS(index(transpose(query(transpose(E3:G18*{M5, N5, 1}),"select "&join("),","max(Col"&row(indirect("A3:A18"))-2)&")")),,2)))

и посмотрите, даст ли это ожидаемый результат?

На случай, если в столбцах E будет более одного значения: G вы можете попробовать

=ArrayFormula(TO_DOLLARS(index(transpose(query(transpose(if(ISNUMBER(E3:G18), E3:G18, 99^99)*{M5, N5, 1}),"select "&join("),","min(Col"&row(indirect("A3:A18"))-2)&")")),,2)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...