Привет! Не понятно, что у Вас там понимать. "выполнены 9 недостатков ...", "станция 950133 считается" Вот Вы знаете, что такое "разгонять эригреки"?
Привет! Не понятно, что у Вас там понимать. "выполнены 9 недостатков ...", "станция 950133 считается" Вот Вы знаете, что такое "разгонять эригреки"?InExSu
Разработчик Битрикс24 php, Google Apps Script, VBA Excel Windows/Mac
Нужно, чтобы в колонке F на закладке "Сводная", считалось количество станций, на которых выполнены ВСЕ рекомендации.
Например, в кластере cl 1 всего 4 станции (см. закладку Status). В колонке F на закладке "Сводная" должно выходить значение 1, так как для станции 950312 стоит критерий по выполнению рекомендций - "Выполнено" (ячейка Е157) и это единственная рекомендация по этой станции. Если например в колонке выполнения рекомендаций добавим значение "Выполнено" в ячейку Е73 для станции 950133, то в колонке F на закладке "Сводная" также должно остаться значение 1, так как выполнены не все рекомендации для станции 950133, будут не выполнены рекомендации Е74 и Е75 для этой станции. Если же в колонке выполнения рекомендаций добавим значение "Выполнено" в ячейках Е73, Е74 и Е75 для станции 950133, то в колонке F на закладке "Сводная" также должно появиться значение 2, так как будут выполнены все рекомендации для станции 950133.
Постараюсь более понятно.
Нужно, чтобы в колонке F на закладке "Сводная", считалось количество станций, на которых выполнены ВСЕ рекомендации.
Например, в кластере cl 1 всего 4 станции (см. закладку Status). В колонке F на закладке "Сводная" должно выходить значение 1, так как для станции 950312 стоит критерий по выполнению рекомендций - "Выполнено" (ячейка Е157) и это единственная рекомендация по этой станции. Если например в колонке выполнения рекомендаций добавим значение "Выполнено" в ячейку Е73 для станции 950133, то в колонке F на закладке "Сводная" также должно остаться значение 1, так как выполнены не все рекомендации для станции 950133, будут не выполнены рекомендации Е74 и Е75 для этой станции. Если же в колонке выполнения рекомендаций добавим значение "Выполнено" в ячейках Е73, Е74 и Е75 для станции 950133, то в колонке F на закладке "Сводная" также должно появиться значение 2, так как будут выполнены все рекомендации для станции 950133.Chingis
Chingis, формулы не придумалось, попробуйте udf: [vba]
Код
Function stat_protected(curr_stat, station, claster, check_rec) Dim cl, dic As Object, temp, i, cnt Set dic = CreateObject("scripting.dictionary") For Each cl In claster i = i + 1 If cl.Value = curr_stat.Value Then
If Not dic.exists(Trim(station(i))) Then dic(Trim(station(i))) = Array(1, IIf(check_rec(i) <> "", 1, 0)) Else temp = dic(Trim(station(i))) temp(0) = temp(0) + 1 temp(1) = temp(1) + IIf(check_rec(i) <> "", 1, 0) dic(Trim(station(i))) = temp End If End If Next cl
For Each k In dic.keys If dic(k)(0) = dic(k)(1) Then cnt = cnt + 1 Next k stat_protected = cnt End Function
[/vba]
проверок на входные аргументы не писала.
Chingis, формулы не придумалось, попробуйте udf: [vba]
Код
Function stat_protected(curr_stat, station, claster, check_rec) Dim cl, dic As Object, temp, i, cnt Set dic = CreateObject("scripting.dictionary") For Each cl In claster i = i + 1 If cl.Value = curr_stat.Value Then
If Not dic.exists(Trim(station(i))) Then dic(Trim(station(i))) = Array(1, IIf(check_rec(i) <> "", 1, 0)) Else temp = dic(Trim(station(i))) temp(0) = temp(0) + 1 temp(1) = temp(1) + IIf(check_rec(i) <> "", 1, 0) dic(Trim(station(i))) = temp End If End If Next cl
For Each k In dic.keys If dic(k)(0) = dic(k)(1) Then cnt = cnt + 1 Next k stat_protected = cnt End Function