Всем Доброго Времени!! Не могу найти оптимальное решение такой задачи.
Имеется от 150 до 200 приборов (В примере - 5). У каждого из которых, свой ID (первый столбец листа "Дано"). Приборы фиксируют 4 показателя. Тестирование приборов состоит из 20 испытаний. Range1_1, Data1, Range1_2, Value1 - результаты первого испытания; Range2_1, Data2, Range2_2, Value2 - результаты второго испытания; ... Range20_1, Data20, Range20_2, Value20
В прилагаемом файле - 4 испытания. Ячейки в стобцах Value принимают только два значения Х или Y. В ячейке S1 - некоторое тестовое значение (S1=10). Резульаты новых тестирований постоянно добавляются в таблицу. Нужно подсчитать количество X-критериев и Y-критериев для каждого прибора. Так, для прибора с ID=1 Х-критерий = 5, это количество значений в столбцах Range, совпадающих с S1 и соответствующих Value=X (ячейки выделены зелёным цветом). Аналогично для ID=1, Y-критерий = 7 (ячейки выделены жёлтым цветом). Т.е. значения столбцов Data не участвуют в подсчете. Результат, который нужно получить, приведён на листе "Итог".
Попытка использовать СУММПРОИЗ, СЧЕТЕСЛИМН, сводные таблицы к результату не привела
Спасибо.
Всем Доброго Времени!! Не могу найти оптимальное решение такой задачи.
Имеется от 150 до 200 приборов (В примере - 5). У каждого из которых, свой ID (первый столбец листа "Дано"). Приборы фиксируют 4 показателя. Тестирование приборов состоит из 20 испытаний. Range1_1, Data1, Range1_2, Value1 - результаты первого испытания; Range2_1, Data2, Range2_2, Value2 - результаты второго испытания; ... Range20_1, Data20, Range20_2, Value20
В прилагаемом файле - 4 испытания. Ячейки в стобцах Value принимают только два значения Х или Y. В ячейке S1 - некоторое тестовое значение (S1=10). Резульаты новых тестирований постоянно добавляются в таблицу. Нужно подсчитать количество X-критериев и Y-критериев для каждого прибора. Так, для прибора с ID=1 Х-критерий = 5, это количество значений в столбцах Range, совпадающих с S1 и соответствующих Value=X (ячейки выделены зелёным цветом). Аналогично для ID=1, Y-критерий = 7 (ячейки выделены жёлтым цветом). Т.е. значения столбцов Data не участвуют в подсчете. Результат, который нужно получить, приведён на листе "Итог".
Попытка использовать СУММПРОИЗ, СЧЕТЕСЛИМН, сводные таблицы к результату не привела
Pelena, Hugo, SergeyKKorotun, большое спасибо! За разные подходы и за идеи, которые у меня появились. Если можно, ещё один вопрос: обработка файла ок. 1500 строк много времени займёт? Спасибо!
Pelena, Hugo, SergeyKKorotun, большое спасибо! За разные подходы и за идеи, которые у меня появились. Если можно, ещё один вопрос: обработка файла ок. 1500 строк много времени займёт? Спасибо!Isa
1500 - это ерунда. Думаю UDF или сводная за пару секунд справятся. Массивные формулы чуть дольше (их там и больше нужно вводить). Вообще если задача частая и критерии ID/X/Y постоянные - теоретически можно написать одну массивную UDF, которая будет делать всю работу за доли секунды. Подменяй только анализируемые данные. Практически некогда - там код будет посложнее.
P.S. Должна с динамическими, попробуйте. Там их всего два - ID и таблица данных, где в первом столбце эти ID. Два других критерия - номер и буква, их можно брать с листа или вводить прямо в формулу.
1500 - это ерунда. Думаю UDF или сводная за пару секунд справятся. Массивные формулы чуть дольше (их там и больше нужно вводить). Вообще если задача частая и критерии ID/X/Y постоянные - теоретически можно написать одну массивную UDF, которая будет делать всю работу за доли секунды. Подменяй только анализируемые данные. Практически некогда - там код будет посложнее.
P.S. Должна с динамическими, попробуйте. Там их всего два - ID и таблица данных, где в первом столбце эти ID. Два других критерия - номер и буква, их можно брать с листа или вводить прямо в формулу.Hugo
Да с этим уже ничего делать не нужно. Ну а если писать одну массивную - тогда она должна возвращать сразу двумерный массив значений, анализируя за один проход по исходному массиву сразу всё. Т.е. в итоге будет работать не много отдельных формул (по одной на ячейку), каждая из которых бегает по исходным данным, а всего одна.
Да с этим уже ничего делать не нужно. Ну а если писать одну массивную - тогда она должна возвращать сразу двумерный массив значений, анализируя за один проход по исходному массиву сразу всё. Т.е. в итоге будет работать не много отдельных формул (по одной на ячейку), каждая из которых бегает по исходным данным, а всего одна.Hugo
Вот на скорую руку переделал первый вариант на массив - вроде вполне работает. Проверьте на своих 1500. Вводить сразу в диапазон как формулу массива!
Вот на скорую руку переделал первый вариант на массив - вроде вполне работает. Проверьте на своих 1500. Вводить сразу в диапазон как формулу массива!Hugo