Задание 24. Работа с массивами
Если набор данных объединен общей задачей их обработки (перебор данных, их анализ, однотипное изменение и др.), то о таком наборе принято говорить как о массиве данных.
Массивом называют совокупность однотипных данных, каждое из которых идентифицируется с именем массива и индексами (индексом). Индекс (или указатель) определяет положение данных в массиве. При обработке массива данные обычно размещают в таблице. Каждая ячейка таблицы имеет имя таблицы и порядковый номер (индекс).В зависимости от количества индексов массивы бывают одномерные (линейные) и многомерные (двух-, трехмерные и т.д.). Пример одномерного массива – список фамилий студентов в группе, многомерного – таблица умножения, журнал учета успеваемости, аттестат зрелости. В двумерной таблице у ячейки два индекса (i – номер строки, j – номер столбца).
В результате обработки этих данных можно получить, например, величину максимального и минимального отклонения размера от указанного на чертеже, среднее арифметическое отклонение, количество деталей с неисправимым браком и много других характеристик.
Для обработки в компьютере массив данных можно разместить в форме таблицы во внутренней памяти на время работы или предварительно записать в отдельный файл на магнитном диске, и во время работы считывать данные из файла.
Рассмотрим один важный аспект применения функций, работающих с массивами, а именно, подведение сложных итогов. Обычно в таблицах требуется подсчитать сумму или количество элементов с некоторыми общими признаками. Использование функций СУММЕСЛИ() и СЧЕТЕСЛИ() ограничено возможностью анализа в них только одного единственного условия, которое можно внести в качестве аргумента, а также ограниченности ссылок на ячейки. Поэтому, если нужно сделать сложную выборку они нам не помогут.
|
Рассмотрим простой пример перехода к таким функциям, используя таблицу:
Положим, нужно найти число всех работающих женщин и их суммарную зарплату. Сначала применим уже известный нам подход без участия функций, использующих массивы:
=СЧЕТЕСЛИ(D2:D5;”ж”) и =СУММЕСЛИ(D2:D5;”ж”;Е2:Е5).
Для этих задач они работают, однако таким образом мы не можем построить более сложный запрос, найти, например, зарплату всех работников, получающих от… и до… и т.п. Если прибегнуть к массивам, можно применять функции СЧЕТ(), МАКС(), СУММ() и другие «итоговые» функции, включив в них необходимые условия отбора:
{=СЧЕТ(ЕСЛИ(D2:D5=”ж”;1))} и {=СУММ(ЕСЛИ(D2:D5=”ж”;1))}.
(Формулу нужно набирать без фигурных скобок, потом для ввода нажать Shift+Ctrl+Enter).
Здесь все ячейки, содержащие в анализируемом диапазоне, будут участвовать в подсчете и суммировании как единицы..
Общая зарплата всех женщин рассчитывается так
{=СУММ(ЕСЛИ(D2:D5="ж";E2:E5))}.
Таким образом, если нужно вычислить количество некоторых элементов, в качестве аргумента функции ЕСЛИ() удобно использовать 1, если сумму – сами эти элементы, содержащие нужные данные. Кроме того, внутри условий можно указывать не только константы, но и ссылки на ячейки, чего нельзя делать в функциях СУММЕСЛИ() и СЧЕТЕСЛИ().
Хотя в функциях, работающих с массивами, нельзя применять логические функции И(), ИЛИ(), НЕ(), зато можно использовать вложенные функции ЕСЛИ().
|
Задания для самостоятельного решения
Напечатайте исходную таблицу и продолжите список до 15 наименований. Добавьте к таблице один столбец с указанием количества детей каждого работника. Решите задачу, используя функции, известные ранее, а затем используя функцию Массив. Номер задания – в журнале преподавателя.
№вар | Вычислите: |
1. | Число женщин, зарабатывающих больше 3000 руб и имеющих двух детей. |
2. | Число женщин, имеющих разряд не ниже 3 и не имеющих детей. |
3. | Число работников, получающих от 2000 до 4000 руб. и их суммарный заработок. |
4. | Число женщин, работающих на складе и имеющих одного ребенка. |
5. | Число работников, работающих на складе и в дирекции. |
6. | Число мужчин, работающих на складе и в дирекции. |
7. | Число работников, получающих зарплату не менее 5 минимальных зарплат. |
8. | Число работников, получающих зарплату меньше средней по предприятию. |
9. | Число наиболее высокооплачиваемых (входящих в верхние 10% по размеру зарплаты) сотрудников. |
10. | Максимальную зарплату, получаемую женщинами, работающими в дирекции. |
11. | Наибольший разряд среди работников, работающих в канцелярии. |
12. | Число женщин, зарабатывающих меньше 3000 руб и имеющих более двух детей. |
13. | Число женщин, имеющих разряд выше 3 и не имеющих детей. |
14. | Число работников, получающих от 3000 до 5000 руб. и их суммарный заработок. |
15. | Число женщин, работающих на складе и в канцелярии. |
16. | Число работников, работающих на складе и в дирекции. |
17. | Число мужчин, работающих на складе и в дирекции. |
18. | Число работников, получающих зарплату более 3 минимальных зарплат. |
19. | Число работников, получающих зарплату больше средней по предприятию. |
20. | Число наиболее низкооплачиваемых (входящих в нижние 10% по размеру зарплаты) сотрудников. |
21. | Минимальную зарплату, получаемую женщинами, работающими в дирекции. |
22. | Наименьший разряд среди работников, работающих в канцелярии. |
23. | Количество сотрудников, имеющих более двух детей. |
24. | Количество сотрудников, имеющих 5 и более детей и работающих на складе. |
25. | Количество женщин, работающих на предприятии, и сколько процентов это составляет от общего количества работающих. |
|