И опять я с вопросом по поводу работы с данными в качестве массивов. В Ексель все просто и все работает (ищет прошлую партию по конкретному товару в списке товаров и партий)
{=ЕСЛИ(МАКС(ЕСЛИ(($J$3:$J$588 {=ЕСЛИ(МАКС(ЕСЛИ((Массив партий<Партия1)*(Массив товаров=Товар 1);Массив партий;""));МАКС(ЕСЛИ((Массив партий<Партия1)*(Массив товаров=Товар 1);Массив партий;""));"На эту дату цена не определена")}
при переносе в гугл таблицы формулы превращаются и перестают работать.
=ARRAY_CONSTRAIN(ARRAYFORMULA(ЕСЛИ(МАКС(ЕСЛИ(($J$3:$J$588 Какие формулы в Гугл таблицах аналогичные екселевским массивам? В мануалах пишут или про {} или про ARRAYFORMULA
Мне ранее писали про формулу FILTR, но я не поняла как ее использовать в применении к массивам
И опять я с вопросом по поводу работы с данными в качестве массивов. В Ексель все просто и все работает (ищет прошлую партию по конкретному товару в списке товаров и партий)
{=ЕСЛИ(МАКС(ЕСЛИ(($J$3:$J$588 {=ЕСЛИ(МАКС(ЕСЛИ((Массив партий<Партия1)*(Массив товаров=Товар 1);Массив партий;""));МАКС(ЕСЛИ((Массив партий<Партия1)*(Массив товаров=Товар 1);Массив партий;""));"На эту дату цена не определена")}
при переносе в гугл таблицы формулы превращаются и перестают работать.
=ARRAY_CONSTRAIN(ARRAYFORMULA(ЕСЛИ(МАКС(ЕСЛИ(($J$3:$J$588 Какие формулы в Гугл таблицах аналогичные екселевским массивам? В мануалах пишут или про {} или про ARRAYFORMULA
Мне ранее писали про формулу FILTR, но я не поняла как ее использовать в применении к массивам makondakova
Мне ранее писали про формулу FILTR, но я не поняла как ее использовать в применении к массивам :(
Я и писал. При использовании функции FILTER массивы обычно как-то специально не выделяются, ибо параметрами этой функции являются диапазоны, которые по сути и являются массивами. Можно говорить о том, что функция FILTER является массивной по умолчанию.
Я сделал Вам две формулы - по мотивам Ваших экселевских наработок. Посмотрите как и что в них используется. Во второй формуле действительно есть массив, обозначенный фигурными скобками {}, но это для того, чтобы добавить к анализируемому реальному столбцу F виртуальный столбец с последовательной нумерацией (вместо использования функции СТРОКА).
Формула для ячейки H3 (колонка "Ближайшая партия"): [vba]
Код
=IFNA(MAX(FILTER($B$3:$B$589; $B$3:$B$589<B3; $D$3:$D$589=D3)); "На эту дату цена не определена")
[/vba]
Формула для ячейки J3 (колонка "Цена ближайшей партии - Вариант 2"): [vba]
[/vba] Вместо использования функции НАИБОЛЬШИЙ во второй формуле отфильтрованный функцией FILTER массив сортируется функцией SORT по убыванию, т.е. от наибольших значений счетчика к наименьшим, после чего берется значение цены из второй колонки первой строки отсортированного массива с помощью функции INDEX(...; 1; 2). Таким образом, получаем значение цены из строки с максимальным значением счетчика среди строк, отобранных функцией FILTER.
Мне ранее писали про формулу FILTR, но я не поняла как ее использовать в применении к массивам :(
Я и писал. При использовании функции FILTER массивы обычно как-то специально не выделяются, ибо параметрами этой функции являются диапазоны, которые по сути и являются массивами. Можно говорить о том, что функция FILTER является массивной по умолчанию.
Я сделал Вам две формулы - по мотивам Ваших экселевских наработок. Посмотрите как и что в них используется. Во второй формуле действительно есть массив, обозначенный фигурными скобками {}, но это для того, чтобы добавить к анализируемому реальному столбцу F виртуальный столбец с последовательной нумерацией (вместо использования функции СТРОКА).
Формула для ячейки H3 (колонка "Ближайшая партия"): [vba]
Код
=IFNA(MAX(FILTER($B$3:$B$589; $B$3:$B$589<B3; $D$3:$D$589=D3)); "На эту дату цена не определена")
[/vba]
Формула для ячейки J3 (колонка "Цена ближайшей партии - Вариант 2"): [vba]
[/vba] Вместо использования функции НАИБОЛЬШИЙ во второй формуле отфильтрованный функцией FILTER массив сортируется функцией SORT по убыванию, т.е. от наибольших значений счетчика к наименьшим, после чего берется значение цены из второй колонки первой строки отсортированного массива с помощью функции INDEX(...; 1; 2). Таким образом, получаем значение цены из строки с максимальным значением счетчика среди строк, отобранных функцией FILTER.Gustav