Я пытаюсь создать график планирования в Excel. На одном листе есть раздел ячеек E6: W45, в котором есть данные, которые я хочу просмотреть. Некоторые ячейки в этом разделе заполнены, а некоторые нет, и я просто проверяю, есть ли в них что-то.
Мне удалось сделать это, чтобы рассчитать «фактический» процент выполненных работ. Однако сейчас я пытаюсь рассчитать «запланированный» процент выполнения. Для этого мне нужно сначала взглянуть на диапазон E4: W4, поскольку в каждой ячейке есть число, показывающее, какая это неделя. Затем для каждой ячейки в этом диапазоне, которая меньше или равна фактическому номеру недели, я хочу затем выполнить цикл по ячейкам в соответствующих столбцах в другом диапазоне E6: E45.
например. если это текущая неделя 10. Первое, что произойдет, это 10-я неделя, 11-я неделя, 12-я неделя ... и так далее, вплоть до 16-й недели засчитываются как прошедшие. Затем в другом диапазоне я хочу просмотреть ТОЛЬКО ячейки в тех столбцах, которые были впервые подсчитаны. Кто-нибудь знает, как я мог это сделать, я пробовал много вещей, но они не работают.
Я думаю, что мне может понадобиться вручную создать новый диапазон из выходов в функции. Однако я не уверен, как это сделать.
Function CalcTarget1(range_data As Range, other_range As Range, weeksOut As Integer)
Dim cell As Range
Dim col As Range
Dim c As Range
Dim count As Double
Dim sum As Double
Dim box As Double
For Each cell In range_data
If cell.Style = "Style 1" Then
count = count + 1
End If
Next cell
If count > 0 Then
sum = 100 / count
Else
sum = 0
End If
For Each col In range_data
If col.Value > weeksOut Then
For Each c In other_range
If c.Style = "Style 1" Then
box = box + 1
End If
Next c
End If
Next col
CalcTarget1 = Round(sum, 1) * box & "%"
End Function
Этот код работает неправильно, так как возвращает 0%
Спасибо за потраченное время.