Страницы: 1
RSS
Заполнение таблицы каскадами единиц
 
Добрый день!
Какая-то у меня головоломная интересная задача возникла.
Табличку надо заполнить группами единиц, идущих каскадом.
То есть группа заканчивается и начинается следующая в строке ниже.
В файле подробно расписано.
Чувствую, что несложно, но не могу сообразить как.
C уважением, Влад!
 
как-то так получилось, скорее всего можно упростить
Код
=ЗНАК((ЕСЛИОШИБКА(ПОИСКПОЗ(10;--($C1:$L1&Ч(+$D1:$M1)););)+$B2>ЧИСЛСТОЛБ(C1:L1))*(СТОЛБЕЦ(A2)<=ОСТАТ(ЕСЛИОШИБКА(ПОИСКПОЗ(10;--($C1:$L1&Ч(+$D1:$M1)););)+$B2;ЧИСЛСТОЛБ(C1:L1)))+(СТОЛБЕЦ(A2)>ОСТАТ(ЕСЛИОШИБКА(ПОИСКПОЗ(10;--($C1:$L1&Ч(+$D1:$M1));););ЧИСЛСТОЛБ(C1:L1)))*(СЧЁТЕСЛИ($B2:B2;1)<($B2+($B2=1))))
 
=IF((C$1>IFERROR(MATCH(1;($D1:$L1="")*$C1:$K1;);))*(C$1<=IFERROR(MATCH(1;($D1:$L1="")*$C1:$K1;);)+$B2)+(C$1<=IFERROR(MATCH(1;($D1:$L1="")*$C1:$K1;);)+$B2-10);1;"")
Изменено: БМВ - 22.03.2019 22:16:44
По вопросам из тем форума, личку не читаю.
 
Vlad, на всякий случай UDF. Она возвращает двумерный массив, высота которого определяется размером диапазона - аргумента, ширина - размером диапазона, в который вставлена функция. Она должна вводиться как формула массива (Ctrl+Shift+Enter).
Код
Function VL(cl As Range) As String()
Dim i&, j&, m&, c
  m = Application.Caller.Columns.Count
  ReDim w(1 To cl.Count, 0 To m - 1) As String
  For Each c In cl.Value
    j = j + 1
    For i = i To i + c - 1
      w(j, i Mod m) = "1"
    Next
  Next
  VL = w
End Function
 
Спасибо всем большое!
С макросом вариант супер!!!
C уважением, Влад!
Страницы: 1
Наверх