Код |
---|
Function Пример(startI As Range, startJ As Range) As Double Dim ws As Worksheet Dim rowNum As Long Dim lastCol As Long Dim countZero As Long Dim i As Long Dim rngI As Range, rngJ As Range ' Определяем рабочий лист Set ws = startI.Worksheet ' Определяем номер строки rowNum = startI.Row ' Определяем последнюю заполненную колонку в строке (по I) lastCol = ws.Cells(rowNum, ws.Columns.Count).End(xlToLeft).Column ' Если данных недостаточно, возвращаем 0 If lastCol <= startJ.Column Then Пример = 0 Exit Function End If ' Определяем диапазоны (без последней колонки) Set rngI = ws.Range(startI, ws.Cells(rowNum, lastCol - 1)) Set rngJ = rngI.Offset(0, 1) ' Считаем количество ячеек, где I = 0, а J > 0 countZero = 0 For i = 1 To rngI.Columns.Count If rngI.Cells(1, i).Value = 0 And rngJ.Cells(1, i).Value > 0 Then countZero = countZero + 1 End If Next i ' Возвращаем результат Пример = countZero End Function |
Код |
---|
=Пример(I2, J2) *Вставляем в ячейку где должна быть формула |