Я пытаюсь создать лист отслеживания для команды по стрельбе по мишеням нашей местной средней школы. Мой лист Google подсчитает среднее значение всех выстрелов. Однако я пытаюсь написать формулу, которая будет брать среднее значение только из последних 10 записей, опуская при этом все ячейки с 0. Теперь столбец AB5: AB42 будет вычислять среднее значение для каждой строки. В ячейке B3 будет рассчитано среднее значение для всех раундов. Я бы хотел, чтобы ячейка B3 вычисляла только последние 10 записей, игнорируя нули на листе. Любые идеи очень ценятся.
Мне удалось вычислить среднее значение всех раундов в B3, но не удалось вычислить последние 10 записей, опуская нули.
Попробуй это
=average(QUERY(tocol(A2:A,1),"select Col1 where Col1 !=0 offset "&if (COUNTIF(TOCOL(A2:A,1),"<>0")<10,0,COUNTIF(TOCOL(A2:A,1),"<>0")-10)))
Измените ссылки на столбцы на номера столбцов (указанные здесь как A2:A).
Я добавил условие для защиты в случае, если присутствует менее 10 записей. Я не могу получить доступ к документу Google, на который вы ссылаетесь, поэтому, если оставить только ваш комментарий, похоже, вы можете попробовать =COUNTIFS(QUERY(tocol(C5:C42,1),"select Col1, где Col1 !=0 offset "&if ( COUNTIF(TOCOL(C5:C42,1),"<>0")<10,0,COUNTIF(TOCOL(C5:C42,1),"<>0")-10)),"X" )
Спасибо, но, к сожалению, в результате я продолжаю получать 0. Я сделал документ редактируемым, и теперь вы сможете получить к нему доступ. Есть еще предложения? docs.google.com/spreadsheets/d/…
О, это определенно помогло увидеть документ. Я обновил его до =COUNTIFS(QUERY(tocol(C5:C42,1),"select Col1, где Col1 не является нулевым смещением "&if (COUNTIF(TOCOL(C5:C42,1),"<>0")<10 ,0,COUNTIF(TOCOL(C5:C42,1),"<>0")-10)),"X") и всё работает
Вы можете попробовать что-то следующее, используя API запроса:
=arrayformula( average( query( sort( A2:A, row(A2:A) * ISNUMBER(A2:A), false), "limit 10", 0 ) ) )
Это не пропускает нулевые значения, но вы, вероятно, можете добиться этого, изменив запрос.
Ссылка:
Спасибо, это сработало отлично. Последнее, что я пытаюсь сделать, это запустить CountIf внизу столбца, и это работает. Однако теперь я хотел бы запустить CountIf и для последних 10 записей. Это то, что у меня есть для столбца C =Countif (C5:C42,"X"). Что я могу использовать, если мне нужны только последние 10 записей, а не весь столбец? Спасибо еще раз за помощь!