У меня есть растущий стол от A:Bl. Он растет по строкам, а не по столбцам. Я пытаюсь написать формулу xlookup, которая будет искать столбец D и находить три последних вхождения английского языка.
бывший. Английский - 5 - 5 - 5... вместо: Английский - 2 - 2 - 2... Английский - 2 - 2 - 2... Английский - 1 - 1 - 1...
https://docs.google.com/spreadsheets/d/1UAcQHEUvqHrIrilEgUlEQrpaOpRnbR7iOsDMIp_LRgA/edit?usp=sharing
Я пробовал это:=XLOOKUP(SEQUENCE(3), ROW(D2:D), INDEX(FILTER(E2:BL, D2:D="English"), ), , -1)
Это не работает... Я ищу формулу, а не скрипт приложения. Если запрос/сумма/индекс лучше, эти решения будут приемлемыми.





Пытаться
=SUM(CHOOSEROWS(FILTER(E2:BL,D2:D = "English"),-1,-2,-3))
Вы можете попробовать:
=let(Λ,ifna(filter(E:H,D:D = "English ")),
bycol(chooserows(Λ,sequence(min(3,rows(Λ)),1,-1,-1)),lambda(Σ,sum(Σ))))
English Вы можете попробовать эту формулу для одного языка:
=ArrayFormula(LET(lang,A2:A13,
toSum,B2:E13,
langCond,"English",
rowNum,ROW(lang),
reverseInstance,COUNTIFS(lang,lang,rowNum,"> = "&rowNum),
createArr,SEQUENCE(1,ROWS(lang),1,0),
total,MMULT(createArr,(lang=langCond)*(reverseInstance<=3)*toSum),
total))
Если вам нужно выполнить поиск на нескольких языках, вы также можете попробовать эту версию массива:
=ArrayFormula(LET(lang,A2:A14,
toSum,B2:E14,
langCond,F5:F7,
rowNum,ROW(lang),
reverseInstance,COUNTIFS(lang,lang,rowNum,"> = "&rowNum),
total,MMULT(--(TRANSPOSE(lang)=langCond),(reverseInstance<=3)*toSum),
total))
QUERY()может быть лучшим выбором.