@KirillRez

Как обернуть формулу в массив arrayformula?

Добрый день.
Решал свой кейс и остановился на последнем действии.
Прошу помощи экспертов.
https://docs.google.com/spreadsheets/d/1O_SalYgToJ...

Как обернуть формулу =INDEX('Лист1'!A$2:A;(MATCH(1;MMULT(-('Лист1'!B$2:E=A2);TRANSPOSE(COLUMN('Лист1'!B$2:E)^0));0)))
в массив arrayformula (Лист2 столбец B) ?
  • Вопрос задан
  • 197 просмотров
Решения вопроса 2
ProgrammerForever
@ProgrammerForever Куратор тега Google Sheets
Учитель, автоэлектрик, программист, музыкант
Я так понял, вам нужно сделать PIVOT наоборот. Когда у меня был такой кейс, сделал себе по-быстрому такую функцию:
/**
 * Разворачивает данные в плоскую таблицу
 *
 * @author Boew Grigory (ff.nspu@gmail.com)
 * @param {Array} data Исходные данные
 * @param {Boolean} [isRemoveNull=true] Удалять ли из выдачи пустые, нулевые и ложные значения
 * @customfunction
*/
function unPivot(data, isRemoveNull=true) {
  let colHeaders = [...(data[0])].slice(1);
  let rowHeaders = data.slice(1).map(row=>row[0]);

  let outData = [];
  rowHeaders.forEach((rowHeader,ri)=>{
    colHeaders.forEach((colHeader,ci)=>{
      let value = data[1+ri][1+ci];
      if(!isRemoveNull || value){
        outData.push([rowHeader, colHeader, value]);
      };
    });
  });

  if(!outData.length){
    return [[]];
  };
  return outData;
};

А в полученном массиве можно найти всё что угодно через ВПР.
Ответ написан
oshliaer
@oshliaer Куратор тега Google Sheets
Google Products Expert
Возможно, это просто

=ARRAYFORMULA(QUERY(SPLIT(FLATTEN(A2:A6&"_"&B2:E6);"_");"where Col2<>''"))


63a963ba00921436842828.png

Пример в Таблице https://docs.google.com/spreadsheets/d/1tAZFRSb-N4...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
dollar
@dollar
Делай добро и бросай его в воду.
Думаю, нужно совместить функции MATCH и INDEX.
Отредактировал ваш пример.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы