Google таблица, нужна помощь с формулой массива

Есть формула в google таблице "реестр договоров", которая составляет номер договора по нескольким параметрам, такие как дата внесения договора, количество дней отсрочки, регион. Вот эта формула:

=IF(NOT(ISBLANK(F416));IF(AND(NOT(ISBLANK(A416));NOT(ISBLANK(F416));NOT(ISBLANK(C416)));"";CONCATENATE(LEFT(YEAR(D416);2);".";A416;"/";IF(H416="Предоплата";"П";H416);"-";I416));"")

Можно переделать формулу так, чтобы она работала как формула массива на всю таблицу? ссылка-пример


Ответы (1 шт):

Автор решения: contributorpw

Предупреждение. Лично я считаю нелепостью генерацию динамических номеров договоров. Номер - это индекс, статический элемент, обусловленный входящими данными, генерируемый ОДНАЖДЫ.

Множественная конкатенация не поддерживается формулами массива, поэтому используют либо конкатенацию через &, либо побочные эффекты других формул.

=ARRAYFORMULA(
  IF((A2:A="")*(C2:C="")*(F2:F="");
  "-";
  TEXT(D2:D;"yy\.")&A2:A&"/"&IF(H2:H="Предоплата";"П";H2:H)&"-"&I2:I)
) 

введите сюда описание изображения

→ Ссылка