Показаны сообщения с ярлыком Логические функции. Показать все сообщения
ИЛИ()
Дана таблица со списком имён и телефонных номеров клиентов (скриншот #1). Нужно узнать абонентами какого сотового оператора является большая часть клиентов.
Чтобы справиться с этой задачей, используем связку функций ЛЕВСИМВ(), ЕСЛИ() и ИЛИ(). Функцию ЛЕВСИМВ() мы используем для получения кода (префикса) оператора, функции ЕСЛИ() и ИЛИ() для формулирования условия. Список кодов сотовых операторов приведён в скриншоте #2.
Начнём с TCell. Так как префиксы префиксы данного оператора двухзначные (92, 93), используем формулу =ЕСЛИ(ИЛИ(ЛЕВСИМВ(C2;2)="92"; ЛЕВСИМВ(C2;2)="93");"тселл")
То есть формула получает из ячейки "C2" два первых символа и проверяет равна ли комбинация этих символов значениям "92" или "93". И если, комбинация первых двух символов равна хотя бы одному из указанных условий, формула выводит в ячейке текст "тселл".
То есть формула получает из ячейки "C2" два первых символа и проверяет равна ли комбинация этих символов значениям "92" или "93". И если, комбинация первых двух символов равна хотя бы одному из указанных условий, формула выводит в ячейке текст "тселл".
Теперь напишем формулу для "Babilon" =ЕСЛИ(ИЛИ(ЛЕВСИМВ(C2;2)="98"; ЛЕВСИМВ(C2;2)="918");"вавилон").
Так как у этого оператора один двухзначный и один трёхзначный префикс, мы сначала берём два первых символа номера и сверяем их с префиксом "98" а потом берём три первых символа и сверяем их с префиксом "918". И если если хотя бы одно из этих условий является Истиной, формула выводит в ячейке текст "вавилон".
По такому же точно принципу пишем формулы для других операторов и объединяем их. В итоге получаем формулу =ЕСЛИ(ИЛИ(ЛЕВСИМВ(C2;2)="92";ЛЕВСИМВ(C2;2)="93");"тселл";ЕСЛИ(ИЛИ(ЛЕВСИМВ(C2;2)="98";ЛЕВСИМВ(C2;3)="918");"вавилон";ЕСЛИ(ИЛИ(ЛЕВСИМВ(C2;3)="911";ЛЕВСИМВ(C2;3)="915";ЛЕВСИМВ(C2;3)="917";ЛЕВСИМВ(C2;3)="919");"билайн";ЕСЛИ(ИЛИ(ЛЕВСИМВ(C2;3)="41";ЛЕВСИМВ(C2;3)="55";ЛЕВСИМВ(C2;3)="88";ЛЕВСИМВ(C2;3)="90");"мегафон"))))
Так как у этого оператора один двухзначный и один трёхзначный префикс, мы сначала берём два первых символа номера и сверяем их с префиксом "98" а потом берём три первых символа и сверяем их с префиксом "918". И если если хотя бы одно из этих условий является Истиной, формула выводит в ячейке текст "вавилон".
По такому же точно принципу пишем формулы для других операторов и объединяем их. В итоге получаем формулу =ЕСЛИ(ИЛИ(ЛЕВСИМВ(C2;2)="92";ЛЕВСИМВ(C2;2)="93");"тселл";ЕСЛИ(ИЛИ(ЛЕВСИМВ(C2;2)="98";ЛЕВСИМВ(C2;3)="918");"вавилон";ЕСЛИ(ИЛИ(ЛЕВСИМВ(C2;3)="911";ЛЕВСИМВ(C2;3)="915";ЛЕВСИМВ(C2;3)="917";ЛЕВСИМВ(C2;3)="919");"билайн";ЕСЛИ(ИЛИ(ЛЕВСИМВ(C2;3)="41";ЛЕВСИМВ(C2;3)="55";ЛЕВСИМВ(C2;3)="88";ЛЕВСИМВ(C2;3)="90");"мегафон"))))
И()
Наверное каждый кто занимался отчётами сталкивался с задачей, когда нужно дать разбивку сумм по группам.
Например в нашем примере (скриншот №1) нужно узнать общую сумму и количество счетов остатки которых:
Например в нашем примере (скриншот №1) нужно узнать общую сумму и количество счетов остатки которых:
- меньше или равны 10 сомонам;
- больше 10 но меньше или равны 100 сомонам;
- больше 100 но меньше или равны 1000 сомонам;
- больше 1000 сомони.
Очень часто наблюдаю как многие для решения этой задачи пользуются фильтрами, каждый раз задавая параметры вручную, через "Настраиваемый фильтр". Хотя данную задачу можно решить гораздо проще и удобнее, с помощью связки функций ЕСЛИ() и И().
Синтаксис такой связки выглядит следующим образом =ЕСЛИ(И(логическое_выражение_1;логическое_выражение_2); значение_если_истина; значение_если_ложь).По сути функция И() даёт нам возможность задавать функции ЕСЛИ() более одного условия, соблюдение которых является обязательным.
Введя перечисленные выше условия (скриншот №2), получаем следующую формулу:
=ЕСЛИ(B2<=10;"до 10 сомони";ЕСЛИ(И(B2>10; B2<=100);"от 10 до 100";ЕСЛИ(И(B2>100; B2<=1000);"от 100 до 1000";ЕСЛИ(B2>1000;"больше 1000")))).
Теперь таблицу можно легко отфильтровать по значениям в столбце "С", либо же разбить по группам с помощью сводной таблицы.
Вложенные ЕСЛИ()
В прошлом посте мы использовали функцию ЕСЛИ() для выбора между двумя условиями. Но что если нужно сделать выбор между тремя и более условиями?
К примеру на скриншоте №1 показана форма ввода для создания и распечатки договора (данные в форме вымышлены).
Как видите в ячейке "В8" вводится счёт договора, и нам нужно чтобы на основании этого счёта в ячейке "В11" Excel показывал нам его валюту.
В предыдущих постах мы уже научились находить валюту счёта с помощью функции ПСТР(). В нашем случае формула нахождения валюты будет выглядить следующим образом =ПСТР(B8;6;3).
Обычно у нас банки открывают счета в четырёх валютах:
- доллары США (840)
- российские рубли (810)
- евро (978)
- сомони (972)
В итоге формируем четыре условия:
- Если содержит "840" - пиши "доллары США";
- Если содержит "810" - пиши "российские рубли";
- Если содержит "978" - пиши "евро"
- Если содержит "972" - пиши "сомони"
Теперь нужно лишь вложить эти условия друг в друга. На выходе получаем формулу =ЕСЛИ(ПСТР(B8;6;3)="840";"доллари ИМА";ЕСЛИ(ПСТР(B8;6;3)="810";"рубли русй"; ЕСЛИ(ПСТР(B8;6;3)="978";"евро";ЕСЛИ(ПСТР(B8;6;3)="972";"сомонӣ"))))
ЕСЛИ()
Дана таблица с паспортными данными клиентов (скриншот №1). Нужно выяснить у каких клиентов паспорта старого образца (бумажные) а у каких нового (пластик).
Как Вы знаете, у паспортов нового образца 8-значный
номер, а у паспортов старого образца 7-значный. Количество символов в строке мы
можем узнать по уже знакомой нам функции ДЛСТР(). Теперь нам нужно написать для Excel формулу, следуя
которой он бы писал для 8-значных номеров "нав" а
для 7-значных номеров "кӯҳна". В этом нам поможет
функция ЕСЛИ(), синтаксис которой: =ЕСЛИ(логическое_выражение;
[значение_если_истина]; [значение_если_ложь]), где
"логическое_выражение" означает условие - в нашем случае "ДЛСТР(ячейка
с номером паспорта)=8". В итоге, получаем формулу: =ЕСЛИ(ДЛСТР(C3)=8;"нав";"кӯҳна").
Подписаться на:
Сообщения
(
Atom
)











