В Microsoft Office Excel можно работать с цифрами и узнавать любое числовое значение. Этот табличный процессор справится практически со всеми расчётами. Он идеально подходит для бухгалтерского учёта. Для вычислений существуют специальные инструменты — формулы. Их можно применять к диапазону или к отдельным ячейкам. Чтобы узнать минимальную или максимальную цифру в группе клеток, необязательно искать их самостоятельно. Лучше воспользоваться предназначенными для этого опциями. Также полезно будет разобраться, как посчитать среднее значение в Excel.
Это особенно актуально в таблицах с большим объёмом данных. Если в столбце, например, указаны цены на продукцию торгового центра. И вам надо узнать, какой товар самый дешёвый. Если искать его «вручную», уйдёт очень много времени. Но в Экселе это можно сделать буквально за несколько кликов. Утилита также высчитывает среднее арифметическое. Ведь это две простые операции: сложение и деление.
В этой статье мы расскажем, как вычислить различные значения в Эксель
Максимальное и минимальное
Вот как найти максимальное значение в Excel:
- Поставьте курсор-ячейку в любое место.
- Перейдите в меню «Формулы».
- Нажмите «Вставить функцию».
- В списке выберите «МАКС». Или напишите это слово в поле «Поиск» и нажмите «Найти».
- В окне «Аргументы» введите адреса диапазона, максимальное значение которого вам нужно узнать. В Excel имена клеток состоят из буквы и цифры («B1», «F15», «W34»). А название диапазона — это первая и последняя ячейки, которые в него входят.
- Вместо адреса можно написать несколько чисел. Тогда система покажет самое большее из них.
- Нажмите «OK». В клетке, в которой стоял курсор, появится результат.
Следующий шаг — укажите диапазон значений
Теперь будет легче разобраться, как найти минимальное значение в Excel. Алгоритм действий полностью идентичен. Просто вместо «МАКС» выберите «МИН».
Среднее
Среднее арифметическое вычисляется так: сложить все цифры из множества и поделить на их количество. В Экселе можно посчитать суммы, узнать, сколько ячеек в строке и так далее. Но это слишком сложно и долго. Придётся использовать много разных функций. Держать в голове информацию. Или даже что-то записывать на листочек. Но можно упростить алгоритм.
Вот как найти среднее значение в Excel:
- Поставьте ячейку курсор в любое свободное место таблицы.
- Перейдите на вкладку «Формулы».
- Нажмите на «Вставить функцию».
- Выберите «СРЗНАЧ».
- Если этого пункта нет в списке, откройте его с помощью опции «Найти».
- В области «Число1» введите адрес диапазона. Или напишите несколько цифр в разных полях «Число2», «Число3».
- Нажмите «OK». В ячейке появится нужное значение.
Нажмите ОК для подсчета
Так можно проводить расчёты не только с позициями в таблице, но и с произвольными множествами. Excel, по сути, играет роль продвинутого калькулятора.
Другие способы
Максимальное, минимальное и среднее можно узнать и другими способами.
- Найдите панель функций с обозначением «Fx». Она над основной рабочей областью таблицы.
- Поставьте курсор в любую ячейку.
- Введите в поле «Fx» аргумент. Он начинается со знака равенства. Потом идёт формула и адрес диапазона/клетки.
- Должно получиться что-то вроде «=МАКС(B8:B11)» (максимальное), «=МИН(F7:V11)» (минимальное), «=СРЗНАЧ(D14:W15)» (среднее).
- Кликните на «галочку» рядом с полем функций. Или просто нажмите Enter. В выделенной ячейке появится нужное значение.
- Формулу можно скопировать непосредственно в саму клетку. Эффект будет тот же.
Впишите диапазон и нажмите Enter
Найти и вычислить поможет Excel-инструмент «Автофункции».
- Поставьте курсор в ячейку.
- Перейдите в раздел «Формулы».
- Найдите кнопку, название которой начинается на «Авто». Это зависит от выбранной в Excel опции по умолчанию («Автосумма», «Авточисло», «Автосмещ», «Автоиндекс»).
- Нажмите на чёрную стрелочку под ней.
- Выберите «МИН» (минимальное значение), «МАКС» (максимальное) или «СРЗНАЧ» (среднее).
- В отмеченной клетке появится формула. Кликните на любую другую ячейку — она будет добавлена в функцию. «Растяните» рамку вокруг неё, чтобы охватить диапазон. Или щёлкайте по сетке с зажатой клавишей Ctrl, чтобы выделять по одному элементу.
- Когда закончите, нажмите Enter. Результат отобразится в клетке.
В Excel вычислить среднее значение достаточно легко. Не нужно складывать, а потом делить сумму. Для этого существует отдельная функция. Также можно найти минимум и максимум в множестве. Это намного легче, чем считать вручную или выискивать цифры в огромной таблице. Поэтому Эксель популярен во многих сферах деятельности, где требуется точность: бизнес, аудит, кадровое делопроизводство, финансы, торговля, математика, физика, астрономия, экономика, наука.
Формула для подсчёта максимального среднего значения |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
Нужно найти, какой артист(artname) имеет максимальную среднюю цену(average cdprice).Есть таблицы
Artist:
CD:
Пробовал написать:
SELECT artname
FROM cd, artist
GROUP BY artname
HAVING (SUM(cdPrice)/COUNT(cd.artid)) >= ALL(SELECT (SUM(cdprice)/COUNT(cd.artid)) FROM cd,artist ar WHERE ar.artid=cd.artid GROUP BY ar.artname);
Но не получилось.
задан 6 ноя 2018 в 14:35
Roar RaizZerRoar RaizZer
3331 золотой знак4 серебряных знака9 бронзовых знаков
1
Самый универсальный вариант:
select a.artname
from (select cd.artid, avg(cd.cdprice) as avg_cdprice
from cd
group by cd.artid
) c
join artist a on c.artid = a.artid
where c.avg_price = (select max(avg_price)
from (select cd.artid, avg(cd.cdprice) as avg_cdprice
from cd
group by cd.artid
) cc
)
ответ дан 6 ноя 2018 в 15:31
DenisDenis
8,86010 золотых знаков30 серебряных знаков55 бронзовых знаков
Самый простой вариант:
Найти артиста с максимальной средней ценой пластинки
SELECT TOP (1) artid FROM CD
GROUP BY (artid)
ORDER BY avg(cdprice) DESC
Соответственно найти имя артиста
SELECT artname FROM Artist WHERE artid =
(
SELECT artid FROM CD
GROUP BY (artid)
ORDER BY avg(cdprice) DESC
LIMIT 1
)
UPD. Поправил под PostgreSQL
ответ дан 6 ноя 2018 в 14:59
Nick ProskuryakovNick Proskuryakov
3,7122 золотых знака14 серебряных знаков38 бронзовых знаков
3
Сам смог разобраться:
SELECT artName FROM Artist, CD WHERE Artist.artID = CD.artID
GROUP BY artName HAVING AVG(cdPrice) >= ALL(SELECT AVG(cdPrice) FROM CD GROUP BY cdGenre);
ответ дан 6 ноя 2018 в 15:36
Roar RaizZerRoar RaizZer
3331 золотой знак4 серебряных знака9 бронзовых знаков
I am trying to display the maximum average salary; however, I can’t seem to get it to work.
I can get a list of the average salaries to display with:
select worker_id, avg(salary)
from workers
group by worker_id;
However, when I try to display a list of the maximum average salary with:
select max (avg(salary))
from (select worker_id, avg(salary)
from workers
group by worker_id);
it doesn’t run. I get an «invalid identifier» error. How do I use the average salary for each worker to find the maximum average for each worker?
Thanks.
asked Nov 8, 2011 at 13:07
2
Columns resulting from aggregate functions (e.g. avg) usually get arbitrary names. Just use an alias for it, and select on that:
select max(avg_salary)
from (select worker_id, avg(salary) AS avg_salary
from workers
group by worker_id) As maxSalary;
answered Nov 8, 2011 at 13:09
king_nakking_nak
11.3k32 silver badges58 bronze badges
1
select worker_id, avgsal
from
(
select worker_id, avg(salary) as avgsal
from workers
group by worker_id
)
where avgsal=(select max(avgsal)
from (select worker_id, avg(salary) as avgsal
from workers group by worker_id))
This will display the highest average along with worker id
Taryn
241k56 gold badges359 silver badges405 bronze badges
answered Mar 6, 2013 at 14:43
As explained here
you can use
SELECT worker_id, AVG(salary)
FROM workers
GROUP BY worker_id
HAVING AVG(salary) = (SELECT MAX(AVG(salary)) FROM workers GROUP BY worker_id)
answered Apr 26, 2015 at 18:52
Raza AhmedRaza Ahmed
2,6412 gold badges35 silver badges45 bronze badges
select worker_id, avg(salary)
from workers
group by worker_id
having avg(salary) = (select max(avgsal) from
(select worker_id, avg(salary) as avgsal
from workers
group by worker_id));
This should also work i guess
Kingsley
14.3k5 gold badges30 silver badges52 bronze badges
answered Nov 27, 2018 at 4:12
You can fix the query by adding a column alias to the column within the sub-query, like so:
select max(avg_salary)
from (select worker_id, avg(salary) avg_salary
from workers
group by worker_id);
However, if worker_id
uniquely identifies records on the workers table, this is functionally equivalent to (can be simplified to):
select max(salary) from workers;
answered Nov 8, 2011 at 13:14
using WITH clause it can be done as
with averagesal as (
select dept_id d_id, avg(sal) avgsal from emp_details group by dept_id)
select * from averagesal where avgsal = (select max(avgsal) from averagesal);
answered Nov 24, 2014 at 9:57
select max(a.high)Avg_highest_salary,
e.dept
from (
select avg(salary) high,dept from emp group by dept) a,
emp e
where a.dept = e.dept
group by e.dept
order by max(a.high) desc
It will show the high Average highest salary first with dept
If you don’t want to show the Salary with Dept then you can use this
select max(avg(salary)) max_avg_salary
from emp
group by dept;
Assaf
1,35210 silver badges19 bronze badges
answered Mar 15, 2013 at 6:55
select Dep_name
from
(
select Dep_name , avg(Salary) as avgsal
from salary
group by Dep_name
) sal1
where avgsal=(select max(avgsal)
from (select Dep_name , avg(salary) as avgsal
from salary group by Dep_name) sal2)
oguz ismail
45k16 gold badges46 silver badges68 bronze badges
answered May 6, 2019 at 13:49
AnandAnand
11 bronze badge
1
You should try the following approach:
select avg(salary) as max_avg_salary from Salaries group by emp_no order by avg(salary) desc limit 1;
answered Aug 31, 2019 at 14:36
https://stackoverflow.com/a/8050885/12190487 shows the folllowing error
ER_DERIVED_MUST_HAVE_ALIAS: Every derived table must have its own alias
Use alias for the new formed column you are selecting from
select max(avg_salary)
from (select worker_id, avg(salary) AS avg_salary
from workers
group by worker_id) as avg ;
answered Oct 9, 2019 at 17:54
This worked out for me.
from (select avg(salary) AS avg_salary
from employees
group by Name) AS T;
answered Nov 15, 2019 at 13:11
You can in this way that the first row is sorted in descending based on average find
select top 1 worker_id, avg(salary) as avgsalary
from workers
group by worker_id
order by avgsalary desc
TAbdiukov
1,1863 gold badges12 silver badges25 bronze badges
answered Jun 10, 2016 at 10:55
select * from (select avg(sal) over (partition by deptno ) avrg,deptno from emp
order by avrg desc) where rownum<2;
Try the above one.
TAbdiukov
1,1863 gold badges12 silver badges25 bronze badges
answered Jan 16, 2020 at 16:38
Here is how to also get the worker_id, inspired by previous answers:
SELECT worker_id, MAX(avg_salary)
FROM (SELECT worker_id, AVG(salary) AS avg_salary
FROM workers
GROUP BY worker_id);
answered Oct 12, 2020 at 13:55
You can also do this with a single select
statement (combining both max
and avg
) like this
select max(avg(salary)) max_avg_salary
from workers
group by worker_id;
answered Nov 8, 2011 at 13:13
Narendra YadalaNarendra Yadala
9,5241 gold badge27 silver badges43 bronze badges
0
#c
Вопрос:
#include <iostream>
using namespace std;
class student
{
public:
char Firstname[20];
char Lastname[20];
int sn;
float avg;
public:
void input()
{
cin >> this->Firstname >> this->Lastname >> this->sn;
}
int cal_sum()
{
float a, b, c, d, e, sum, avg;
cout << "enter the scores : " << endl;
cin >> a >> b >> c >> d >> e;
sum = a b c d e;
avg = sum / 5;
cout << "avg = " << avg << endl;
if (a <= b amp;amp; a <= c amp;amp; a <= d amp;amp; a <= e)
cout << "min = " << a << endl;
if (b <= a amp;amp; b <= c amp;amp; b <= d amp;amp; b <= e)
cout << "min = " << b << endl;
if (c <= a amp;amp; c <= b amp;amp; c <= d amp;amp; c <= e)
cout << "min = " << c << endl;
if (d <= a amp;amp; d <= b amp;amp; d <= c amp;amp; d <= e)
cout << "min = " << d << endl;
if (e <= a amp;amp; e <= b amp;amp; e <= c amp;amp; e <= d)
cout << "min = " << e << endl;
if (a >= b amp;amp; a >= c amp;amp; a >= d amp;amp; a >= e)
cout << "max = " << a << endl;
if (b >= a amp;amp; b >= c amp;amp; b >= d amp;amp; b >= e)
cout << "max = " << b << endl;
if (c >= a amp;amp; c >= b amp;amp; c >= d amp;amp; c >= e)
cout << "max = " << c << endl;
if (d >= a amp;amp; d >= b amp;amp; d >= c amp;amp; d >= e)
cout << "max = " << d << endl;
if (e >= a amp;amp; e >= b amp;amp; e >= c amp;amp; e >= d)
cout << "max = " << e << endl;
return (0);
}
};
int main()
{
student A, B, C, D, E, F, G, H, I, J;
A.input();
A.cal_sum();
B.input();
B.cal_sum();
C.input();
C.cal_sum();
D.input();
D.cal_sum();
E.input();
E.cal_sum();
F.input();
F.cal_sum();
G.input();
G.cal_sum();
H.input();
H.cal_sum();
I.input();
I.cal_sum();
J.input();
J.cal_sum();
}
Я хочу, чтобы в этой программе соблюдались следующие условия:
- получите информацию о 10 студентах(имя, номер студента, не менее 5 баллов)
- ввод и печать информации о студентах с помощью 2 различных функций
- рассчитайте средние баллы каждого студента
- найдите минимальное и максимальное количество баллов каждого студента
- найдите минимальный и максимальный средний балл среди всех студентов
- сортировка имен студентов
- получите конкретное имя студента или номер студента из записи и выполните поиск среди студентов
Я перепробовал много способов для последних трех условий, но я не знаю, как их установить.
Комментарии:
1. Массивы или (что еще лучше)
std::vector
еще не преподавались на вашем курсе?2. @OP Что, если бы у вас было 100 или тысяча чисел, чтобы взять среднее значение? Вы бы создали 100 или тысячу переменных? Почему вы использовали массивы здесь
char Firstname[20];
, а не имели массиваfloat
?3. @Scheff’Scat — Массивы были или, казалось, были обучены:
char Firstname[20];
. Я предполагаю, что оперативная группа не знала назначения массивов.4.
student A, B, C, D, E, F, G, H, I, J;
—> >student aStudent[10];
— Вы можете начать с этого, вместо объявления 10 отдельныхstudent
переменных. Опять же, вы уже используете массивыchar
, так что нет никаких оснований не использовать массивы здесь (и в других местах).5. Тизер на колиру 😉