{"text_format":"1","workbook":"xlsx","n_sheets":2,"sheets":["скважины","Макросы"],"not_rendered":{"charts":0,"images":0,"macros":1,"external_links":0,"defined_names":3,"comments":1,"pivot_tables":0},"unopened":[],"bounds":{"document_bytes":16777216,"sheet_cells":100000,"rows_first":2000,"rows_last":500,"rows_between":2000,"halvings":0,"cell_chars":16384,"cell_head_chars":4096},"cells_cut":0,"cells_raw":0,"read":"whole","date_system":"1900"}

{"sheet":"скважины","index":0,"n_rows":23,"n_cols":43,"rows_kept":23,"cut":false,"hidden":false,"merged":[[1,13,1,17],[1,24,1,40],[1,41,1,42],[1,18,1,23],[1,10,1,12]]}
["№ пробы","Лаб. Номер","Дата","Точка отбора - исходная вода, (водозабор)","UDF - Контроль норматива \"+\" - несоответствие)","мкб","орг","общ","неорг","рад","общие колиморфные бактерии","термотолерантные колиморфные бактерии","общее микробное число","Интенсивность запаха при 20⁰","Интенсивность запаха при 60⁰С","Интенсивность вкуса","Цветность","Мутность","Водородный показатель","Сухой остаток (минерализация)","Жесткость общая","Окисляемость перманганатная","АПАВ","Нефтепродукты","Железо","Хлориды","Нитраты","Нитриты","Сульфат-ион","Фенолы летучие","Фториды","Аммиак (азот аммония)","ИОН","Алюминий","Кадмий","Молибден","Мышьяк","Ртуть","Свинец","Медь","Цинк","Удельная суммарная альфа-активность","Удельная суммарная бета-активность"]
["Подземные источники водоснабжения (артезианская скважина) с.п. Салым (7 шт)",null,null,null,null,null,null,null,null,null,"1.1. Микробиологические",null,null,"1.3. Органолептические",null,null,null,null,"1.4. Обобщенные",null,null,null,null,null,"1.5. Неорганические",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"1.6. Радиологические"]
["Норматив (ПДК), не более",null,null,null,null,null,null,null,null,null,0,0,0,2,2,2,20,2.6,9,1000,7,5,0.5,0.1,0.3,350,45,3,500,1E-3,1.5,2,2,0.2,1E-3,0.25,0.01,5.0000000000000001E-4,0.01,1,5,0.2,1]
["Единица измерения",null,null,null,null,null,null,null,null,null,"число колониеобразующих бактерий (КОЕ) в 100 мл","число колониеобразующих бактерий (КОЕ) в 100 мл",null,"баллы","баллы","баллы","градус цветности","при длине вольны 530 нм, ЕМФ, 2,6 по формазину","единицы pH","мг/дм³","градус, Ж","мгО2/дм³","мг/дм³","мг/дм³","мг/дм³","мг/дм³","мг/дм³","мг/дм³","мг/дм³","мг/дм³",null,"мг/дм³","мг/дм³","мг/дм³","мг/дм³","мг/дм³","мг/дм³","мг/дм³","мг/дм³","мг/дм³","мг/дм³"]
["периодичность",null,null,null,null,null,null,null,null,null,"1 раз в сезон","1 раз в сезон","1 раз в сезон",null,null,null,"1 раз в сезон",null,"1 раз в сезон","1 раз в сезон","1 раз в сезон","1 раз в сезон","1 раз в сезон","1 раз в сезон","1 раз в год",null,null,null,null,null,null,null,"1 раз в год","1 раз в год","1 раз в год","1 раз в год","1 раз в год","1 раз в год","1 раз в год","1 раз в год","1 раз в год"]
["Количество необходимых проб в год",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,7,7,7,7,7,7,7,7,7]
["ФЕВРАЛЬ"]
["1.111",928,"2022-02-07",7107,{"$f":"get_index(K8:AQ8,$K$3:$AQ$3)","v":"+"},{"$f":"get_category_array(K8:M8)","v":0},{"$f":"get_category_array(N8:R8)","v":1},{"$f":"get_category_array(S8:X8)","v":1},{"$f":"get_category_array(Y8:AO8)","v":1},{"$f":"get_category_array(AP8:AQ8)","v":0},null,null,null,2,1,null,null,15,null,null,null,7.2,null,null,null,null,null,null,null,null,null,null,4.5]
["1.112",null,null,7168,{"$f":"get_index(K9:AQ9,$K$3:$AQ$3)","v":"+"},{"$f":"get_category_array(K9:M9)","v":0},{"$f":"get_category_array(N9:R9)","v":0},{"$f":"get_category_array(S9:X9)","v":1},{"$f":"get_category_array(Y9:AO9)","v":1},{"$f":"get_category_array(AP9:AQ9)","v":0},null,null,null,1,1,null,null,1.99,null,null,null,6.1,null,null,null,null,null,null,null,null,null,null,3.9]
["1.113",929,"2022-02-07",7110,{"$f":"get_index(K10:AQ10,$K$3:$AQ$3)","v":"+"},0,0,1,1,0,null,null,null,1,1,1,18.2,1.9,7.5,387,2.0699999999999998,6.5,6.2E-2,6.4000000000000001E-2,null,null,null,null,null,null,null,null,4.5999999999999996]
[]
[]
[]
[]
[]
[]
[]
["кол-во проб  НЕ СООТВ по:"]
["мкб"]
["орг"]
["общ"]
["неорг"]
["рад"]

{"sheet":"Макросы","index":1,"n_rows":53,"n_cols":2,"rows_kept":53,"cut":false,"hidden":false,"merged":[]}
[]
[1,"' UDF контроля ненормативных результатов исследований"]
[2,"' Метод решения - пользовательская функция (на основе макроса) в каждой паре ячееек  тестовах и нормативных величин исследований"]
[3,"Public Function get_index(test_array As Variant, normal_array As Variant) As String ' пользовательская функция =get_index(F8:AL8;$F$3:$AL$3)"]
[4,"' входные параметры : массив тестовых показателей test_array  биоанализа в пробах"]
[5,"'входные параметры : массив нормативных  показателей normal_array биоанализа"]
[6,"Dim test_row As Integer 'тип данных для номеров строки тестовых показателей"]
[7,"Dim norm_row As Integer 'тип данных для номеров строки нормативных показателей"]
[8,"Dim j_col As Integer ' текущая колонка анализа"]
[9,"Dim outnorm As Integer ' счетчик числа ненормативных показателей"]
[10,"Application.ScreenUpdating = False  'отключение обновления экрана"]
[11,"With ActiveSheet ' для активного листа"]
[12,"test_row = ActiveCell.Row ' номер строки тестовых данных"]
[13,"norm_row = 3 ' номер строки нормативных данных"]
[14,"outnorm = 0 'начальное значение количества ненормативных величин"]
[15,"For j_col = 6 To 6 + 33 - 1 ' цикл по столбцам сравнения тестовых и нормативных показателей"]
[16,"If .Cells(test_row, j_col) > .Cells(norm_row, j_col) Then ' если тест > норматива"]
[17,"outnorm = outnorm + 1 ' наращиваем счетчик  ненормативных показателей"]
[18,"Else ' иначе"]
[19,"End If ' конец условия"]
[20,"Next j_col ' следующий столбец данных"]
[21,"If outnorm >= 1 Then 'если число ненормативных значений > 1"]
[22,"get_index = \"+\" ' ставим \"+\" для функции"]
[23,"Else 'иначе  < 1  - норма не нарушена"]
[24,"get_index = \"-\" ' ставим \"-\" для функции"]
[25,"End If ' конец условия"]
[26,"End With"]
[27,"Application.ScreenUpdating = True  'включение обновления экрана"]
[28,"End Function"]
[]
[1,"' UDF расчета ненормативных результатов исследований"]
[2,"' Метод решения - пользовательская функция (на основе макроса) в каждом массиве по категории исследований"]
[3,"Public Function get_category_array(category_array As Variant) As Variant 'пользовательская функция =get_category_array(F8:H16)"]
[4,"' подсчета количества ненормативных значений проб по категориям веществ"]
[5,"' массив category_array - двумерный по набору веществ для каждой категории =get_category_array(F8:H16)"]
[6,"Dim rCell As Range 'тип переменной текущей ячейки"]
[7,"Dim outnorm As Integer ' переменная массива тестовых величин в категории веществ"]
[8,"Application.ScreenUpdating = False  'отключение обновления экрана"]
[9,"Set ws = category_array ' устанавливаем переменную двумерного массива F8:H16"]
[10,"With ActiveSheet"]
[11,"'test_row = ActiveCell.Row"]
[12,"norm_row = 3 ' номер строки нормативных данных"]
[13,"outnorm = 0 'начальное значение количества ненормативных величин"]
[14,"For Each rCell In ws.Cells ' цикл по ячейкам в двумерном массиве"]
[15,"If rCell.Value <> \"\" And rCell.Value > .Cells(norm_row, rCell.Column) Then  ' если тест rCell > норматива .Cells(norm_row, rCell.Column)"]
[16,"outnorm = outnorm + 1 ' наращиваем счетчик  ненормативных показателей"]
[17,"Else ' иначе"]
[18,"End If ' конец условия"]
[19,"Next rCell ' следующая ячейка двумерного массива"]
[20,"get_category_array = outnorm 'фиксируем число ненормативных величин проб в заданной категории веществ"]
[21,"End With ' конец операций на активном листе"]
[22,"Application.ScreenUpdating = True  'включение обновления экрана"]
[23,"End Function"]