М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
Павел22032006
Павел22032006
09.11.2022 08:38 •  Информатика

как в экселе по формуле сделать так, чтобы из предложенных вариантов в таблице выбрался самый дешёвый и выделился плюсом​

👇
Ответ:
Brauberg898117
Brauberg898117
09.11.2022

Если вы продвинутый пользователь Microsoft Excel, то должны быть знакомы с функцией поиска и подстановки ВПР или VLOOKUP (если еще нет, то сначала почитайте эту статью, чтобы им стать). Для тех, кто понимает, рекламировать ее не нужно :) - без нее не обходится ни один сложный расчет в Excel. Есть, однако, одна проблема: эта функция умеет искать данные только по совпадению одного параметра. А если у нас их несколько?

Предположим, что у нас есть база данных по ценам товаров за разные месяцы:

vlookup-2cols1.png

Нужно найти и вытащить цену заданного товара (Нектарин) в определенном месяце (Январь), т.е. получить на выходе152, но автоматически, т.е. с формулы. ВПР в чистом виде тут не но есть несколько других решить эту задачу.

Дополнительный столбец с ключом поиска

Это самый очевидный и простой (хотя и не самый удобный Поскольку штатная функция ВПР (VLOOKUP) умеет искать только по одному столбцу, а не по нескольким, то нам нужно из нескольких сделать один!

Добавим рядом с нашей таблицей еще один столбец, где склеим название товара и месяц в единое целое с оператора сцепки (&), чтобы получить уникальный столбец-ключ для поиска:

vlookup-2cols2.png

Теперь можно использовать знакомую функцию ВПР (VLOOKUP) для поиска склеенной пары НектаринЯнварь из ячеек H3 и J3 в созданном ключевом столбце:

vlookup-2cols3.png

Плюсы: Простой знакомая функция, работает с любыми данными.

Минусы: Надо делать дополнительный столбец и потом, возможно, еще и прятать его от пользователя. При изменении числа строк в таблице - допротягивать формулу сцепки на новые строки (хотя это можно упростить применением умной таблицы).

Функция СУММЕСЛИМН

Если нужно найти именно число (в нашем случае цена как раз число), то вместо ВПР можно использовать функцию СУММЕСЛИМН (SUMIFS), появившуюся начиная с Excel 2007. По идее, эта функция выбирает и суммирует числовые значения по нескольким (до 127!) условиям. Но если в нашем списке нет повторяющихся товаров внутри одного месяца, то она просто выведет значение цены для заданного товара и месяца:

vlookup-2cols4.png

Плюсы: Не нужен дополнительный столбец, решение легко масштабируется на большее количество условий (до 127), быстро считает.

Минусы: Работает только с числовыми данными на выходе, не применима для поиска текста, не работает в старых версиях Excel (2003 и ранее).

Формула массива

О том, как спользовать связку функций ИНДЕКС (INDEX) и ПОИСКПОЗ (MATCH) в качестве более мощной альтернативы ВПР я уже подробно описывал (с видео). В нашем же случае, можно применить их для поиска по нескольким столбцам в виде формулы массива. Для этого:

Выделите пустую зеленую ячейку, где должен быть результат.

Введите в строке формул в нее следующую формулу:

vlookup-2cols6.png

Нажмите в конце не Enter, а сочетание Ctrl+Shift+Enter, чтобы ввести формулу не как обычную, а как формулу массива.

Как это на самом деле работает:

Функция ИНДЕКС выдает из диапазона цен C2:C161 содержимое N-ой ячейки по порядку. При этом порядковый номер нужной ячейки нам находит функция ПОИСКПОЗ. Она ищет связку названия товара и месяца (НектаринЯнварь) по очереди во всех ячейках склеенного из двух столбцов диапазона A2:A161&B2:B161 и выдает порядковый номер ячейки, где нашла точное совпадение. По сути, это первый но ключевой столбец создается виртуально прямо внутри формулы, а не в ячейках листа.

Плюсы: Не нужен отдельный столбец, работает и с числами и с текстом.

Минусы: Ощутимо тормозит на больших таблицах (как и все формулы массива, впрочем), особенно если указывать диапазоны "с запасом" или сразу целые столбцы (т.е. вместо A2:A161 вводить A:A и т.д.) Многим непривычны формулы массива в принципе

4,5(51 оценок)
Открыть все ответы
Ответ:
nastya09042
nastya09042
09.11.2022
Пройдёмся отдельно по каждой строчке:

S: =0; a:=0; //задали две переменные, обе равны 0

While a < > 5 do //создали цикл, тело которого будет выполняться до тех пор, пока значение переменной "а" не равно 5

Begin //ниже выполнится тело цикла

Read (a); //считали значение переменной "а" (ввод с клавиатуры)

S:=S+a //увеличили значение переменной "s" на переменную "а", то есть нашли сумму двух переменных

WriteIn (' сумма S=', S); //вывели сумму, которая хранится в переменной "S", на экран

End; //конец тела цикла

Проведя анализ программы, выяснили, что в результате выполнения данного фрагмента кода, в переменную "s" записывается сумма всех переменных "a", введённых с клавиатуры. Программа завершает свое действие, когда пользователь вводит с клавиатуры цифру "5", т.к. цикл действует до той поры, пока переменная "а" не равна 5. Таким образом, мы получили на выводе сумму всех введённых нами с клавиатуры чисел.

4,6(48 оценок)
Ответ:
Zalina4272Bdjdkxc
Zalina4272Bdjdkxc
09.11.2022

type mas=array[1..10,1..10]of integer;

procedure vvod(var a:mas;var m,n:integer;c:char);

var i,j:integer;

begin

repeat

writeln('Введите размеры массива ',c,' m,n от 2 до 10');

readln(m,n);

until(m in [2..10])and(n in [2..10]);

writeln('Введите элементы массива целые числа, в том числе суммы в четных строках по возрастанию');

for i:=1 to m do

for j:=1 to n do

begin

 write(c,'[',i,',',j,']=');

 readln(a[i,j]);

end;

end;

procedure print(a:mas;m,n:integer;st:string);

var i,j,s:integer;

begin

writeln(st);

writeln('Сумма':n*5+8);

for i:=1 to m do

begin

 s:=0;

 for j:=1 to n do

  begin

   write(a[i,j]:5);

   s:=s+a[i,j];

  end;

 writeln(s:8);

end;

end;

procedure check(a:mas;m,n:integer);

var i,j,k,s,s1:integer;

begin

k:=0;

i:=2;

while(i<=m)and(k=0) do

begin

 s:=0;

 for j:=1 to n do

 s:=s+a[i,j];

 if i=2 then s1:=s

 else if s<=s1 then k:=1;

 s1:=s;

 i:=i+2;

end;

writeln('k=',k);

if k=0 then writeln('Суммы в четных строках упорядочены по возрастанию')

else writeln('Суммы в четных строках не упорядочены по возрастанию');

writeln;

end;

var a,b:mas;

   ma,na,mb,nb:integer;

begin

vvod(a,ma,na,'A');

print(a,ma,na,'Массив А');

check(a,ma,na);

vvod(b,mb,nb,'B');

print(b,mb,nb,'Массив B');

check(b,mb,nb);

end.

4,8(78 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ