Доступ к другим данным листа изнутри ARRAYFORMULA

Я извлекаю данные из другого листа и хочу использовать ARRAYFORMULA.

В sheet1 у меня есть доход от продаж разных сайтов на разные даты, и он отсортирован по сайтам и датам.

Я хочу получить доход каждого сайта за последний день.

На sheet2 я перечислил все сайты и могу получить номер строки за последний день сайта, используя MATCH function. (Класс Б)

Но я не могу получить данные о доходах с таким номером строки. Формула, которую я использовал в sheet2 Столбце C.

=ARRAYFORMULA(IF(A2:A<>"","'sheet1'!"&ADDRESS((B2:B),2),""))

Это лучший результат, который я могу получить без ошибок. Кажется, это близко к ответу, но я застрял.

Результат sheet2

Столбец А Столбец Б Столбец С. Сайт 1 2 'лист1'!$B$2 Сайт 2 7 'лист1'!$B$7

Я знаю, что INDEX должен решить эту проблему, но его нельзя использовать в ARRAYFORMULA. Если кто-нибудь может помочь в этом, мы будем признательны.

Пример

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
51
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Поскольку даты уже отсортированы; вы можете пойти с:

=arrayformula(xlookup(A2:A9,sheet1!A:A,sheet1!C:C,,,-1))

Альтернатива для одновременного определения местоположения и дохода:

=choosecols(sortn(sort(sheet1!A2:C,2,),9^9,2,1,1),1,3)

Работает хорошо. Большое спасибо!

CH Yang 01.09.2024 17:48

@CHYang Я так понимаю, это твой первый вопрос на Stack Overflow. См. Что мне делать, если кто-то отвечает на мой вопрос?

doubleunary 01.09.2024 19:47

Это еще одна альтернатива функции QUERY, где вся таблица в диапазоне F2:H9 создается с помощью формулы в ячейке F2, которая есть;

=ARRAYFORMULA(QUERY({A2:C,BYROW(A2:A,LAMBDA(x,MAXIFS(B2:B,A2:A,x))),Datevalue(B2:B)},"Select Col1, Col2, Col3 Where Col4= Col5 And Col1 Is Not Null"))

Преимущество этой альтернативы: диапазон данных не обязательно упорядочивать по возрастанию или убыванию относительно какого-либо столбца.

Если данные находятся на Sheet1 и вы хотите создать таблицу результатов на другом листе, то на другом листе, скажем, Sheet2 вы можете использовать это;

=ARRAYFORMULA(QUERY({Sheet1!A2:C,BYROW(Sheet1!A2:A,LAMBDA(x,MAXIFS(Sheet1!B2:B,Sheet1!A2:A,x))),Datevalue(Sheet1!B2:B)},"Select Col1, Col2, Col3 Where Col4= Col5 And Col1 Is Not Null"))

Образец листа вы можете посмотреть по ссылке ниже:

https://docs.google.com/spreadsheets/d/1Njbub84EqOotmCb0in635yzf2pkZ93MNuIlFwVqQvZw/edit?usp=sharing

Другие вопросы по теме