Ввести алгоритмы для excel

Реализацию алгоритма вычислительной задачи в
электронных таблицах Excel возможно, так как они
выполняют необходимые требования, предъявляемые
к среде реализации алгоритма [Глущенко Ю. В.
Обоснование использования языка
программирования в учебном процессе (в печати)].

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

  1. Составление спецификаций переменных заданного
    алгоритма в виде таблицы, в столбцах которой
    будут Имя переменной в алгоритме, назначение,
    тип, диапазон, адрес в Excel, вид реализации.
  2. Разработка таблиц ВводаИнформации.
  3. Разработка таблицы подзадачи
    ОбработкаИнформации.
  4. Разработка таблицы ВыводаРезультата.
  5. Тестирование построенных таблиц.

Линейные алгоритмы

ЗАДАЧА. Задан алгоритм в виде:

НАЧАЛО_АЛГОРИТМА

  1. Ввести значения сторон треугольника а, в, с.
  2. Вычислить значение полупериметра р = (а+в+с)/2
  3. Вычислить площадь треугольника S=(p*(p-а)*(р-в)*(р-с)).
  4. Вывести значение S.

КОНЕЦ_АЛГОРИТМА

Реализовать вычисления по заданному алгоритму
в Excel.

РЕШЕНИЕ.

1. Спецификация переменных исходного
алгоритма:

№ п/п.

Имя перем. в алгоритме

Назначение

Тип

Диапазон

Адрес

Вид реализации

Переменные входного потока

1 А Сторона тр-ка Вещ 0, + B3 <число>
2 В Сторона тр-ка Вещ 0, + B4 <число>
3 С Сторона тр-ка Вещ 0, + В5 <число>

Переменные блока
обработки информации

4 Р полупериметр Вещ 0, + Е3 <формула>
5 S Площадь тр-ка Вещ 0, + Е4 <формула>

Переменные выходного
потока.

6 S Площадь тр-ка Вещ 0, + Н3 <формула>

2. Разработка таблицы ВводаИнформации

Таблица ВводаИнформации должна содержать
значения переменных входного потока. Ее
реализация показана на Рис. 1.

3. Разработка таблицы подзадачи
ОбработкаИнформации

В данной таблице необходимо провести
вычисления полупериметра и площади. Оба эти
параметра вводятся с помощью формул в
соответствующие ячейки. Реализация данной
таблицы приведено на Рис. 1.

4. Разработка таблицы ВыводаРезультатов

Таблица ВыводаРезультатов должна содержать
значения переменных выходного потока. Ее
реализация показана на Рис. 1.

5. Тестирование разработанных таблиц

Для тестирования полученных таблиц строим
таблицу теста по следующему шаблону:

№ п/п. Имя Назначение Значение/результат
1 А Входной поток 1 3 1    
2 В 1 4 1    
3 С 4 5 2    
4 Р Промежуточные 3 6 2    
5 S Выходной поток Ошибка 6 0    

ЗАДАЧА РЕШЕНА.

Задачи для самостоятельной работы можно найти
в Приложении 1.

Алгоритм ветвления

ЗАДАЧА. Задан алгоритм в виде:

НАЧАЛО_АЛГОРИТМА

  1. Ввести значение переменной Х.
  2. ЕСЛИ Х не больше 0,
    ТО          Y:=Х*Х, ИНАЧЕ Y:=Х+1.
  3. Вывести значение переменной Y.

КОНЕЦ_АЛГОРИТМА

Реализовать вычисления по заданному алгоритму
в Excel.

РЕШЕНИЕ.

1. Спецификация переменных исходного
алгоритма
:

2. Разработка таблицы ВводаИнформации

Таблица ВводаИнформации должна содержать
значения переменных входного потока. В нашем
случае значение X. Ее реализация показана на Рис. 2.

3, 4. Разработка таблицы подзадачи
ОбработкаИнформации.

В данной задаче можно (и нужно) объединить
задачи ОбработкиИнфориации и ВыводаРезультатов,
построив только таблицу ВыводаРезультатов. Ее
реализация показана на Рис. 2.

5. Тестирование разработанной таблицы.

Для тестирования полученной таблицы
необходимо взять минимум три значения Х:

  • слева от ветвления,
  • в точке ветвления,
  • справа от точки ветвления.

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

Имя переменной ЗНАЧЕНИЕ/РЕЗУЛЬТАТ
Слева от точки ветвления В точке ветвления Справа от точки ветвления
X -5 0 2
Y 25 0 3

ЗАДАЧА РЕШЕНА.

Задачи для самостоятельной работы можно найти
в Приложении 2.

Циклические алгоритмы

ЗАДАЧА. Задан алгоритм в виде:

НАЧАЛО_АЛГОРИТМА

  • Ввести значение целочисленной переменной
    1<=N<=10.
  • S:= 0        {Начальное значение
    сумматора равно нулю}.
  • I:= 0         {Начальное
    значение индекса цикла равно нулю}.
  • I:=I+1      {Текущее значение индекса
    цикла}.
  • S:=S+I    
                                        {накопление
    суммы}.
  • ЕСЛИ N>I то идти на п.4       
    {конец цикла с постусловием}
  • Вывести значение
    S                
    {Вывод результата}.

КОНЕЦ_АЛГОРИТМА

Реализовать вычисления по заданному алгоритму
в Excel.

РЕШЕНИЕ.

1. Спецификация переменных исходного
алгоритма
:

№ п/п. Имя переменной в алгоритме. Назначение Тип Диапазон Адрес Реализация
Переменные входного потока
1 N ПВхП ц 1..10 B3 <число>
Индекс цикла
1 i индекс ц 1..N А10:A50 <массив>
5 S ПВхдП ц <=55 B10:B50 <формула>
Переменные выходного потока.
5 S ПВхдП ц <=55 Е3 <формула>

2. Разработка таблицы ВводаИнформации

Таблица ВводаИнформации должна содержать
значения переменных входного потока. В нашем
случае значение N. Ее реализация показана на Рис. 3.

3. Разработка таблицы подзадачи
ОбработкаИнформации

Реализация обработки информации возможна лишь
с использованием циклического алгоритма.
В случае с Excel данную задачу необходимо разбить
на три:

  • Построение столбца индексов цикла.
  • Построение столбца элементов массива.

ЗАДАЧА №1 ПОСТРОЕНИЕ СТОЛБЦА ИНДЕКСА ЦИКЛА.

Данную задачу сформулируем в виде:

Построить столбец значений индекса цикла в
интервале [1..N (задано)]. При этом с изменением
значения N в ячейке В3 должно изменяться и
количество значений индекса цикла в расчетной
таблице.
Эта задача решается в столбце А начиная со строки
№10.

Важно отметить, что протяжку можно вести до
любого номера строки лишь бы при всех изменениях
N протяжка формулы захватывала все строки
изменения значения индекса цикла. Необходимо
только помнить, что при протяжке увеличивается
объем файла, то есть чем глубже протянем формулу,
тем большим будет объем полученного файла и,
возможно, медленнее будет работать Excel с этим
файлом.

Рис. 3.

ПЕРВАЯ ЗАДАЧА РЕШЕНА

ЗАДАЧА №2. ПОСТРОЕНИЕ СТОЛБЦА ЭЛЕМЕНТОВ ЦИКЛА.

Здесь под элементом цикла будем понимать
текущее значение S, зависящее от значения индекса
цикла.
Сформулируем задачу в следующем виде:
Для каждого значения индекса цикла определить
текущее значение S.
Столбец В дает нам текущие значения S=f(<индекс
цикла>), при этом протяжка формулы в столбце В
должна быть не меньше протяжки в столбце А.

Рис. 3.

ВТОРАЯ ЗАДАЧА РЕШЕНА.

4. Разработка таблицы подзадачи
ВыводРезультатов

Для решения данной задачи следует понять, что
выходным значением S будет наибольшее из
значений в ячейках В [10…]. Конечное значение
интервала в В определяется протяжкой формул в
задачах №№1, 2. Пусть формулы протянули до строки
№50. Естественно, наибольшим S будет для
наибольшего значения индекса цикла, так как на
каждом шаге прибавляется число большее 1.
Следовательно, в ячейку Е3 необходимо ввести
формулу

Е3 =>[=МАКС(b10:b50)]

Рис. 3.

И если помнить, что значение пустой ячейки Excel
воспринимает как «0», то…

ТРЕТЬЯ ЗАДАЧА РЕШЕНА.

5. Тестирование полученных таблиц

Для тестирования полученной таблицы строим
таблицу теста по следующему шаблону:

№ п/п. Имя назначение Значение/результат
1 N Вход 1 5 7 9 10
2 S Выход 1 15 28 45 55

ЗАДАЧА РЕШЕНА.

Задачи для самостоятельной работы можно найти
в Приложении 3.

Содержание

  1. Построение произвольных блок-схем и автоматический анализ связей в MS EXCEL
  2. Построитель произвольных блок-схем
  3. Анализ данных блок-схемы
  4. Как это реализовано?
  5. РЕАЛИЗАЦИЯ АЛГОРИТМОВ С ПОМОЩЬЮ МАКРОСОВ В EXCEL
  6. Реализация алгоритмов в электронных таблицах
  7. Линейные алгоритмы
  8. Алгоритм ветвления
  9. Циклические алгоритмы

Построение произвольных блок-схем и автоматический анализ связей в MS EXCEL

history 28 августа 2022 г.

Создадим редактор блок-схем произвольной формы в MS EXCEL. Помимо построения блок-схем редактор должен автоматически (по нажатию кнопки) проводить анализ связей элементов в схеме:

  • подсчитывать количество элементов,
  • присваивать им уникальные номера,
  • определять последователей и предшественников элемента,
  • проводить проверки (наличие связей, отсутствие дублирующих связей, контроль циклов внутри схемы и др.).

Справедливости ради, нужно отметить, что предложенный в данной статье построитель блок-схем во многом дублирует стандартный инструмент SmartArt (тип Иерархия), который можно создать через меню EXCEL Вставка-Иллюстрации-SmartArt.

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

Примечание:

В статье Автоматический анализ схем SmartArt MS EXCEL показано как считать всю информацию об элементах и их связях с помощью VBA (фактически реализован парсинг сбор и систематизация информации, parsing).

Построитель произвольных блок-схем

Для редактора блок-схем будем использовать стандартные элементы типа Надпись и Стрелка (меню EXCEL Вставка-Иллюстрации-Фигуры). Каждому элементу блок-схемы (Надпись) программа VBA будет присваивать уникальный номер, что в дальнейшем нам позволит определить связи между элементами (заполнив отдельную таблицу последователей и предшественников каждого элемента). Поскольку мы будем строить блок-схему иерархического типа, то последователь (тот элемент к которому идет стрелка) будет единственным, но если требуется создать схему с произвольными связями, то программу VBA можно легко настроить. Иерархический тип блок-схем подходит для описания организационных систем (начальник должен быть единственным, в идеале), производственных цепочек (механическая обработка и сборка изделий) и др.

Перечислим некоторые правила построения данного типа блок-схемы и работы с ней:

  1. У элемента допускается не более одной исходящей стрелки. Если у элемента отсутствует исходящая стрелка, то он называется Конечным элементом (это — Босс;)
  2. У элемента допускается несколько входящих стрелок. Если у элемента отсутствует входящая стрелка, то он называется Начальным элементом. Если их 2 и больше, то это — элемент типа Сборка
  3. Каждый элемент должен иметь соединение хотя бы с одним другим элементом
  4. Два элемента могут быть соединены только одной стрелкой
  5. В схеме можно сделать несколько последовательностей не связанных между собой стрелками.
  6. Количество несвязанных между собой последовательностей элементов равно количеству Конечных элементов (следствие Правила №1)
  7. Для анализа схемы все элементы и стрелки именуются по определенному формату (01, 02, . 09, 10, 11), это нужно для работоспособности схемы
  8. Вставляйте элементы и стрелки только с использованием кнопок на листе «Вставить элемент» и Связать 2 элемента»
  9. Не удаляйте элементы по отдельности — это может нарушить работоспособность схемы. Удаляйте схему целиком. Стрелки удалять можно
  10. Стрелки не соединяющие 2 элемента не допускаются (могут возникнуть при удалении 1 элемента)
  11. Элементы на схеме двигать можно, стрелки будут следовать за своим элементом. Если нужно подвинуть стрелку, то двигайте элемент

Для построения схемы на листе создано меню с кнопками управления (см. файл примера ).

Пример построения схемы с нуля

  1. Выделите ячейку на листе куда нужно поставить элемент
  2. Нажмите кнопку Вставить элемент схемы. Элемент (прямоугольник с номером 01) появится на листе
  3. Вставьте еще 1 элемент повторив шаг 1 и 2. На листе появится элемент с номером 02
  4. Выделите сначала элемент 01, затем, удерживая CTRL или SHIFT, выделите элемент 02 (последовательность выделения элементов важна для направления стрелки)
  5. Нажмите кнопку Связать 2 элемента, появится стрелка соединяющая элемент 01 с 02. Элементы можно перемещать, стрелка будет перемещаться вместе с элементами

Так выглядит схема с 2-мя независимыми последовательностями

Анализ данных блок-схемы

Построим следующую схему:

После построения блок-схемы нажмите кнопку Анализ схемы — заполнится таблица. Результаты анализа схемы приведены ниже.

Так как предшественников у каждого элемента может быть несколько, то их номера выведены в одной ячейке — в тектовой строке. Чтобы расшифровать ее используйте функцию ПСТР(). Например, формула =ПСТР(N33;3;2) выведет второго предшественника элемента 03 (или 3), т.е. элемент 02 (дополнительный ноль перед номером у элементов от 1 до 9 упрощает анализ этой строки).

Информацию из этой таблицы можно передавать в качестве исходных данных в программу, которая моделирует, например, производственный процесс (элементы представляют собой разное оборудование). К примеру, исходный материал в данной схеме должен подаваться на оборудование 01 и 04, а конечный продукт изготавливается оборудованием под номером 06. Программе также будет понятно на какое оборудование передавать материал на следующем шаге. Элементам можно присвоить характеристики (производительность, уровень брака, вероятность простоя).

С помощью данных, указанных в таблице, и простейших формул можно много узнать о схеме.

Также можно определить количество уровней иерархии в схеме или максимальную длину последовательности элементов, что фактически то же самое.

Как это реализовано?

Построение схемы (вставка элементов, их нумерация, связь элементов стрелками) реализовано с помощью процедур VBA.

Анализ схемы и заполнение таблицы — также нескоолько строк программного кода.

Однако, для создания схем и работы с ними знания программирования не требуется.

Источник

РЕАЛИЗАЦИЯ АЛГОРИТМОВ С ПОМОЩЬЮ МАКРОСОВ В EXCEL

Цель работы: получить практические навыки разработки функций для реализации линейных, разветвляющихся и простейших циклических алгоритмов с помощью макросов в Excel.

Теоретические сведения

Реализация линейных и разветвляющихся алгоритмов

В Visual Basic for Application для задания значения переменной используется оператор присваивания. Этот оператор имеет следующий вид:

Выражение может быть арифметическим, текстовым или логическим.

Для записи выражений используются арифметические, текстовые и логические операции (операторы).

Арифметические операторы служат для выполнения арифметических действий над числами (таблица 16.1).

Таблица 16.1 ‑ Арифметические операторы

Арифметический оператор Действие Пример
+ (знак плюс) Сложение 3+3
– (знак минус) Вычитание Унарный минус 3–1 –1
* (звездочка) Умножение 3*3
/ (косая черта) (обратная черта) Деление Целочисленное деление 5/8 (результат 0.625) 58 (результат 0)
% (знак процента) Процент 20%
^ (крышка) Возведение в степень 3^2 (аналогично 3*3)

Для объединения нескольких текстовых строк в единую последовательность букв служит текстовый оператор &. Например, выражение «Энергетический » & «факультет» эквивалентно записи «Энергетический факультет».

Для записи разветвляющихсяалгоритмов используется оператор If(Если), который имеет две формы записи.

1. Однострочная запись:

Ifусловие Then [оператор]

If условие Then [оператор 1] [Elseоператор 2]

2. Многострочная запись:

If условие Then

End If

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

После имени конструкции If должно следовать логическое выражение, содержащее условие. Для создания сложных условий используются логические операции And (И) и Or (Или). В качестве условия могут выступать следующие логические выражения: сравнение переменной с другой переменной, константой или функцией; любая переменная; выражение; поле базы данных; функция, принимающие значения True (Истина) или False (Ложь).

Конструкция IfThen (Тогда)Else (Также)аналогична конструкции If. Then, но позволяет задать действия, исполняемые как при выполнении условий, так и в случае их невыполнения.

Команда Ifможет проверить только одно условие. Если требуется осуществить переход управления в зависимости от результатов проверки нескольких условий, то дополнительное условие можно задать с помощью оператора Else If (Также Если). Оно будет анализироваться только в том случае, если предыдущее условие ложно.

Ключевое слово End If обозначает конец многострочной конструкции и его наличие в команде в этом случае обязательно. Если указанное условие выполняется, то есть результат проверки равен True (Истина), то выполняются операторы, следующие за ключевым словом Then. Если условие не выполняется, то Visual Basic переходит к выполнению операторов, следующих за указанным оператором.

В качестве примера приведем функцию определения корней квадратного уравнения:

Function Корни(a, b, c)

d = b ^ 2 — 4 * a * c

x1 = (-b + d ^ (1 / 2)) / (2 * a)

x2 = (-b — d ^ (1 / 2)) / (2 * a)

Корни = «x1=» + str(x1) + «; x2=» + str(x2)

Корни = «корней нет»

Конструкция Select Сase позволяет обрабатывать в программе несколько условий и аналогична блоку конструкций IfThenElse. Эта конструкция состоит из анализируемого выражения и набора операторов Case (в случае) на каждое возможное значение выражения. Работает эта конструкция следующим образом. Сначала вычисляется значение заданного в конструкции выражения. Затем полученное значение сравнивается со значениями, задаваемыми в операторах Сase конструкции. Если найдено искомое значение, выполняются команды, приписанные данному оператору Case. После завершения выполнения конструкций управление будет передано конструкции, следующей за ключевым словом End Select. Запись конструкции Select Case следующая:

Select Case сравниваемое значение

CASE значение 1

CASE значение 2

End Select

В начале конструкции расположены ключевые слова Select Case, указывающие, что расположенный рядом с ними параметр “сравниваемое значение” будет проверяться на несколько значений. Далее следуют группы команд, начинающиеся с ключевого слова Case. Если параметр “сравниваемое значение” равен значению, указанному в текущем операторе Case, то будут выполняться команды, расположенные между этим и следующим ключевым словом Case.

В качестве примера воспользуемся конструкцией Select Case для выбора удельного активного сопротивления и расчета полного активного сопротивления R в зависимости от заданной марки провода воздушной линии электропередачи:

Источник

Реализация алгоритмов в электронных таблицах

Реализацию алгоритма вычислительной задачи в электронных таблицах Excel возможно, так как они выполняют необходимые требования, предъявляемые к среде реализации алгоритма [Глущенко Ю. В. Обоснование использования языка программирования в учебном процессе (в печати)].

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

  1. Составление спецификаций переменных заданного алгоритма в виде таблицы, в столбцах которой будут Имя переменной в алгоритме, назначение, тип, диапазон, адрес в Excel, вид реализации.
  2. Разработка таблиц ВводаИнформации.
  3. Разработка таблицы подзадачи ОбработкаИнформации.
  4. Разработка таблицы ВыводаРезультата.
  5. Тестирование построенных таблиц.

Линейные алгоритмы

ЗАДАЧА. Задан алгоритм в виде:

НАЧАЛО_АЛГОРИТМА

  1. Ввести значения сторон треугольника а, в, с.
  2. Вычислить значение полупериметра р = (а+в+с)/2
  3. Вычислить площадь треугольника S=(p*(p-а)*(р-в)*(р-с)).
  4. Вывести значение S.

Реализовать вычисления по заданному алгоритму в Excel.

1. Спецификация переменных исходного алгоритма:

Имя перем. в алгоритме

Назначение

Диапазон

Вид реализации

Переменные входного потока 1 А Сторона тр-ка Вещ 0, + B3 2 В Сторона тр-ка Вещ 0, + B4 3 С Сторона тр-ка Вещ 0, + В5

Переменные блока обработки информации 4 Р полупериметр Вещ 0, + Е3 5 S Площадь тр-ка Вещ 0, + Е4

Переменные выходного потока. 6 S Площадь тр-ка Вещ 0, + Н3

2. Разработка таблицы ВводаИнформации

Таблица ВводаИнформации должна содержать значения переменных входного потока. Ее реализация показана на Рис. 1.

3. Разработка таблицы подзадачи ОбработкаИнформации

В данной таблице необходимо провести вычисления полупериметра и площади. Оба эти параметра вводятся с помощью формул в соответствующие ячейки. Реализация данной таблицы приведено на Рис. 1.

4. Разработка таблицы ВыводаРезультатов

Таблица ВыводаРезультатов должна содержать значения переменных выходного потока. Ее реализация показана на Рис. 1.

5. Тестирование разработанных таблиц

Для тестирования полученных таблиц строим таблицу теста по следующему шаблону:

№ п/п. Имя Назначение Значение/результат
1 А Входной поток 1 3 1
2 В 1 4 1
3 С 4 5 2
4 Р Промежуточные 3 6 2
5 S Выходной поток Ошибка 6 0

Задачи для самостоятельной работы можно найти в Приложении 1.

Алгоритм ветвления

ЗАДАЧА. Задан алгоритм в виде:

НАЧАЛО_АЛГОРИТМА

  1. Ввести значение переменной Х.
  2. ЕСЛИ Х не больше 0, ТО Y:=Х*Х, ИНАЧЕ Y:=Х+1.
  3. Вывести значение переменной Y.

Реализовать вычисления по заданному алгоритму в Excel.

1. Спецификация переменных исходного алгоритма:

№ п/п. Имя переменной в алгоритме. Назна-чение Тип Диа-пазон Адрес Реализация
Переменные входного потока
1 Х Входной поток вещ ± B3
Переменные блока обработки информации
2 Y вычисление вещ ± Е3
Переменные выходного потока.
2 Y Выходной поток вещ ± Е3

2. Разработка таблицы ВводаИнформации

Таблица ВводаИнформации должна содержать значения переменных входного потока. В нашем случае значение X. Ее реализация показана на Рис. 2.

3, 4. Разработка таблицы подзадачи ОбработкаИнформации.

В данной задаче можно (и нужно) объединить задачи ОбработкиИнфориации и ВыводаРезультатов, построив только таблицу ВыводаРезультатов. Ее реализация показана на Рис. 2.

5. Тестирование разработанной таблицы.

Для тестирования полученной таблицы необходимо взять минимум три значения Х:

  • слева от ветвления,
  • в точке ветвления,
  • справа от точки ветвления.

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

Имя переменной ЗНАЧЕНИЕ/РЕЗУЛЬТАТ
Слева от точки ветвления В точке ветвления Справа от точки ветвления
X -5 0 2
Y 25 0 3

Задачи для самостоятельной работы можно найти в Приложении 2.

Циклические алгоритмы

ЗАДАЧА. Задан алгоритм в виде:

НАЧАЛО_АЛГОРИТМА

  • Ввести значение целочисленной переменной 1 I то идти на п.4
  • Вывести значение S <Вывод результата>.

Реализовать вычисления по заданному алгоритму в Excel.

1. Спецификация переменных исходного алгоритма:

№ п/п. Имя переменной в алгоритме. Назначение Тип Диапазон Адрес Реализация
Переменные входного потока
1 N ПВхП ц 1..10 B3
Индекс цикла
1 i индекс ц 1..N А10:A50
5 S ПВхдП ц
Переменные выходного потока.
5 S ПВхдП ц

2. Разработка таблицы ВводаИнформации

Таблица ВводаИнформации должна содержать значения переменных входного потока. В нашем случае значение N. Ее реализация показана на Рис. 3.

3. Разработка таблицы подзадачи ОбработкаИнформации

Реализация обработки информации возможна лишь с использованием циклического алгоритма.
В случае с Excel данную задачу необходимо разбить на три:

  • Построение столбца индексов цикла.
  • Построение столбца элементов массива.

ЗАДАЧА №1 ПОСТРОЕНИЕ СТОЛБЦА ИНДЕКСА ЦИКЛА.

Данную задачу сформулируем в виде:

Построить столбец значений индекса цикла в интервале [1..N (задано)]. При этом с изменением значения N в ячейке В3 должно изменяться и количество значений индекса цикла в расчетной таблице.
Эта задача решается в столбце А начиная со строки №10.

Важно отметить, что протяжку можно вести до любого номера строки лишь бы при всех изменениях N протяжка формулы захватывала все строки изменения значения индекса цикла. Необходимо только помнить, что при протяжке увеличивается объем файла, то есть чем глубже протянем формулу, тем большим будет объем полученного файла и, возможно, медленнее будет работать Excel с этим файлом.

ПЕРВАЯ ЗАДАЧА РЕШЕНА

ЗАДАЧА №2. ПОСТРОЕНИЕ СТОЛБЦА ЭЛЕМЕНТОВ ЦИКЛА.

Здесь под элементом цикла будем понимать текущее значение S, зависящее от значения индекса цикла.
Сформулируем задачу в следующем виде:
Для каждого значения индекса цикла определить текущее значение S.
Столбец В дает нам текущие значения S=f( ), при этом протяжка формулы в столбце В должна быть не меньше протяжки в столбце А.

ВТОРАЯ ЗАДАЧА РЕШЕНА.

4. Разработка таблицы подзадачи ВыводРезультатов

Для решения данной задачи следует понять, что выходным значением S будет наибольшее из значений в ячейках В [10…]. Конечное значение интервала в В определяется протяжкой формул в задачах №№1, 2. Пусть формулы протянули до строки №50. Естественно, наибольшим S будет для наибольшего значения индекса цикла, так как на каждом шаге прибавляется число большее 1.
Следовательно, в ячейку Е3 необходимо ввести формулу

И если помнить, что значение пустой ячейки Excel воспринимает как «0», то…

ТРЕТЬЯ ЗАДАЧА РЕШЕНА.

5. Тестирование полученных таблиц

Для тестирования полученной таблицы строим таблицу теста по следующему шаблону:

№ п/п. Имя назначение Значение/результат
1 N Вход 1 5 7 9 10
2 S Выход 1 15 28 45 55

Задачи для самостоятельной работы можно найти в Приложении 3.

Источник

history 28 августа 2022 г.
    Группы статей

  • Приложения
  • Управление проектами

Создадим редактор блок-схем произвольной формы в MS EXCEL. Помимо построения блок-схем редактор должен автоматически (по нажатию кнопки) проводить анализ связей элементов в схеме:

  • подсчитывать количество элементов,
  • присваивать им уникальные номера,
  • определять последователей и предшественников элемента,
  • проводить проверки (наличие связей, отсутствие дублирующих связей, контроль циклов внутри схемы и др.). 

Справедливости ради, нужно отметить, что предложенный в данной статье построитель блок-схем во многом дублирует стандартный инструмент SmartArt (тип Иерархия), который можно создать через меню EXCEL Вставка-Иллюстрации-SmartArt.

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

Примечание:

В статье Автоматический анализ схем SmartArt MS EXCEL показано как считать всю информацию об элементах и их связях с помощью VBA (фактически реализован парсинг — сбор и систематизация информации, parsing).

Построитель произвольных блок-схем

Для редактора блок-схем будем использовать стандартные элементы типа Надпись и Стрелка (меню EXCEL Вставка-Иллюстрации-Фигуры). Каждому элементу блок-схемы (Надпись) программа VBA будет присваивать уникальный номер, что в дальнейшем нам позволит определить связи между элементами (заполнив отдельную таблицу последователей и предшественников каждого элемента). Поскольку мы будем строить блок-схему иерархического типа, то последователь (тот элемент к которому идет стрелка) будет единственным, но если требуется создать схему с произвольными связями, то программу VBA можно легко настроить. Иерархический тип блок-схем подходит для описания организационных систем (начальник должен быть единственным, в идеале), производственных цепочек (механическая обработка и сборка изделий) и др.

Перечислим некоторые правила построения данного типа блок-схемы и работы с ней:

  1. У элемента допускается не более одной исходящей стрелки. Если у элемента отсутствует исходящая стрелка, то он называется Конечным элементом (это — Босс;)
  2. У элемента допускается несколько входящих стрелок. Если у элемента отсутствует входящая стрелка, то он называется Начальным элементом. Если их 2 и больше, то это — элемент типа Сборка
  3. Каждый элемент должен иметь соединение хотя бы с одним другим элементом
  4. Два элемента могут быть соединены только одной стрелкой
  5. В схеме можно сделать несколько последовательностей не связанных между собой стрелками. 
  6. Количество несвязанных между собой последовательностей элементов равно количеству Конечных элементов (следствие Правила №1)
  7. Для анализа схемы все элементы и стрелки именуются по определенному формату (01, 02, … 09, 10, 11), это нужно для работоспособности схемы
  8. Вставляйте элементы и стрелки только с использованием кнопок на листе «Вставить элемент» и Связать 2 элемента»
  9. Не удаляйте элементы по отдельности — это может нарушить работоспособность схемы. Удаляйте схему целиком. Стрелки удалять можно
  10. Стрелки не соединяющие 2 элемента не допускаются (могут возникнуть при удалении 1 элемента)
  11. Элементы на схеме двигать можно, стрелки будут следовать за своим элементом. Если нужно подвинуть стрелку, то двигайте элемент

Для построения схемы на листе создано меню с кнопками управления (см. файл примера).

Пример построения схемы с нуля

  1. Выделите ячейку на листе куда нужно поставить элемент
  2. Нажмите кнопку Вставить элемент схемы. Элемент (прямоугольник с номером 01) появится на листе
  3. Вставьте еще 1 элемент повторив шаг 1 и 2. На листе появится элемент с номером 02
  4. Выделите сначала элемент 01, затем, удерживая CTRL или SHIFT, выделите элемент 02 (последовательность выделения элементов важна для направления стрелки)
  5. Нажмите кнопку Связать 2 элемента, появится стрелка соединяющая элемент 01 с 02. Элементы можно перемещать, стрелка будет перемещаться вместе с элементами

Так выглядит схема с 2-мя независимыми последовательностями

Анализ данных блок-схемы

Построим следующую схему:

После построения блок-схемы нажмите кнопку Анализ схемы — заполнится таблица. Результаты анализа схемы приведены ниже.

Так как предшественников у каждого элемента может быть несколько, то их номера выведены в одной ячейке — в тектовой строке. Чтобы расшифровать ее используйте функцию ПСТР(). Например, формула =ПСТР(N33;3;2) выведет второго предшественника элемента 03 (или 3), т.е. элемент 02 (дополнительный ноль перед номером у элементов от 1 до 9 упрощает анализ этой строки).

Информацию из этой таблицы можно передавать в качестве исходных данных в программу, которая моделирует, например, производственный процесс (элементы представляют собой разное оборудование). К примеру, исходный материал в данной схеме должен подаваться на оборудование 01 и 04, а конечный продукт изготавливается оборудованием под номером 06. Программе также будет понятно на какое оборудование передавать материал на следующем шаге. Элементам можно присвоить характеристики (производительность, уровень брака, вероятность простоя). 

С помощью данных, указанных в таблице, и простейших формул можно много узнать о схеме.

Также можно определить количество уровней иерархии в схеме или максимальную длину последовательности элементов, что фактически то же самое.

Как это реализовано?

Построение схемы (вставка элементов, их нумерация, связь элементов стрелками) реализовано с помощью процедур VBA.

Анализ схемы и заполнение таблицы — также нескоолько строк программного кода.

Однако, для создания схем и работы с ними знания программирования не требуется.

Большинство типовых
вычислительных алгоритмов в Excel оформлены
в виде стандартных функций и вызываются
с помощью программы Мастер функций (см.
подразд. 1.9
). Самые популярные
из них:

  • ЕСЛИ() – позволяет
    предусмотреть разные варианты заполнения
    ячейки;

  • СУММ(), ПРОИЗВЕД()
    – соответственно суммирование и
    перемножение значений из одного или
    нескольких блоков;

  • СУММПРОИЗВ() –
    суммирование произведений соответствующих
    элементов двух или нескольких массивов;

  • СРЗНАЧ(), СРГЕОМ()
    – расчет соответственно среднего
    арифметического и геометрического по
    числам в заданных блоках;

  • СЧЕТ() – определение
    количества чисел в заданном блоке.

Более сложные
алгоритмы оформлены в виде команд и
заказываются через меню Сервис. Наиболее
важные из них:

  • Подбор параметра…
    – нахождение аргумента, при котором
    функция примет нужное значение;

  • Поиск решения…
    – решение систем уравнений и задач
    оптимизации;

  • Пакет анализа –
    содержит программы, необходимые при
    статистической обработке данных.

Если нужная для
вычислений команда отсутствует в меню,
ее можно установить с помощью команды
Сервис Надстройки…

6.1. Общие сведения о функции если()

Функция ЕСЛИ()
позволяет предусмотреть разные способы
заполнения одной и той же ячейки. То,
каким из них следует воспользоваться
в данный момент, Excel определяет
самостоятельно по тому, выполняется
или нет при введенных данных указанное
в функции условие. Стандартный формат
функции имеет следующий вид:

ЕСЛИ(Логическое_выражение;
Значение_если_истина;Значение_если_ложь)

Здесь:

  • Логическое_выражение
    – это условие, которое при одних
    значениях введенных данных выполняется,
    при других – нет;

  • Значение_если_истина
    – алгоритм, по которому определяется
    значение функции, когда условие
    оказывается правильным;

  • Значение_если_ложь
    – алгоритм, по которому определяется
    значение функции, когда условие
    оказывается неправильным.

В роли алгоритмов,
которые выбирает функция ЕСЛИ(), могут
выступать расчетные выражения, другие
функции, ссылки на ячейки, где находится
нужная информация, текстовые строки и
т. п.

Рассмотрим действие
этой функции на конкретных примерах.

6.2. Выбор из двух вариантов по одному условию

Пример

Поставщик ввел
оптовую скидку на цену для больших
партий товара. Надо составить шаблон
для расчета стоимости любой партии
товара.

Составим таблицу
из констант, необходимых для расчета.
В ячейки А1:А4 введем названия констант:
«ОбъемПартии», «ОптБарьер»,
«РознЦена», «ОптЦена». Присвоим
ячейкам В1:В4 такие же имена (удобно
пользоваться командой Вставка

Имя

Создать…
). В ячейку С1 введем
текст «СтоимПартииТовара».

Сделаем активной
ячейку С2 и вызовем через Мастер функций
функцию ЕСЛИ(). В окне аргументов в
текстовые поля введем следующие значения:

  • В поле
    «Логическое_выражение:» вводится
    условие, по которому Excel будет выбирать
    нужный вариант действий. Его можно
    составить так:

ОбъемПартии<=ОптБарьер

  • В поле
    «Значение_если_истина:» указывается
    способ, по которому следует рассчитывать
    функцию, если условие оказалось
    правильным при тех данных, которые
    введены во влияющие ячейки в данный
    момент. Для нашего примера этот аргумент
    выглядит следующим образом:

ОбъемПартии*
РознЦена

  • В поле
    «Значение_если_ложь:» указывается,
    как рассчитывать функцию, если условие
    не выполняется. Для нашего примера
    следует ввести

ОбъемПартии*ОптЦена

Расчетный шаблон
готов. Чтобы проверить его, введите
удобные для устных расчетов числа в
ячейки В1:В4 и проверьте, правильно ли
функция ЕСЛИ() выбрала формулу для
заполнения ячейки С2. Введите в В1 другой
объем партии, при котором требуется
использовать другую цену при расчете
стоимости покупки. Если в обоих случаях
получены верные результаты, можно
красиво отформатировать ячейки А1:С4
(см.
подразд. 1.13–1.16
) и пользоваться
этим шаблоном, меняя только значения
констант в В1:В4.

Пример

В таблице значений
функции y = 2cos(x
+
2)e0,5xнадо отметить символом «*» строку
с минимальным значением.

Введем в ячейки
А1 и В1 подписи «X» и
«Y», в блок А2:А11 –
значения аргументов, в блок В2:В11 –
формулу расчета функции. Столбец С
зарезервируем для заказанной в условии
метки. В ячейкуD1 введем
текст «минимум», в ячейкеD2
с помощью функции МИН() найдем это
значение в блоке В2:В11.

Выделим ячейку С2
и вызовем через Мастер функций функцию
ЕСЛИ(). Условие, по которому Excel выбирает
нужный вариант действий, составим так:
В2=$D$2. В строку второго
аргумента вводим символ «*» (без
кавычек), в третий – пробел и нажмем
после этого <ОК>. С помощью протяжки
скопируем полученную формулу на блок
С2:С11.

Задание

Посмотрите, какой
вид приняла функция в разных ячейках
этого блока.

Рассмотрим функцию
ЕСЛИ() в той строке, в которой появилась
«*». Значение функции y
в этой строке минимально. Левая и
правая части условия оказались
одинаковыми, т. е. первый аргумент –
правильный. Поэтому для заполнения
своей ячейки функция ЕСЛИ выбрала то,
что указано во втором аргументе. Для
значений функцииув других строках
условие, введенное в функцию ЕСЛИ(),
оказывается неверным, поэтому она
заполняет свои ячейки по варианту
третьего аргумента. В нашем случае это
пробел, который невидим на экране,
поэтому ячейки кажутся пустыми.

Измените аргументы,
введенные в А2:А11. «*» переместилась
в другую строку, хотя формулы в С2:С11 не
были изменены (после изменения данных
каждая функция ЕСЛИ() автоматически
проверила свой первый аргумент заново
и приняла новое управляющее решение,
каким правилом пользоваться для
заполнения своей ячейки).

Задание

В ячейку А1 введите
формулу:

=ЕСЛИ(С3=37;»СЕНО»;»СОЛОМА»)

Определите влияющую
ячейку (команда
Сервис

Зависимости

Влияющие ячейки
) и введите в
нее такое число, при котором СОЛОМА
превратится в СЕНО.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

#Руководства

  • 23 май 2022

  • 0

Как с помощью макросов автоматизировать рутинные задачи в Excel? Какие команды они выполняют? Как создать макрос новичку? Разбираемся на примере.

Иллюстрация: Meery Mary для Skillbox Media

Ксеня Шестак

Рассказывает просто о сложных вещах из мира бизнеса и управления. До редактуры — пять лет в банке и три — в оценке имущества. Разбирается в Excel, финансах и корпоративной жизни.

Макрос (или макрокоманда) в Excel — алгоритм действий в программе, который объединён в одну команду. С помощью макроса можно выполнить несколько шагов в Excel, нажав на одну кнопку в меню или на сочетание клавиш.

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

Например, если нужно добавить название компании в несколько десятков документов и отформатировать его вид под корпоративный дизайн, можно делать это в каждом документе отдельно, а можно записать ход действий при создании первого документа в макрос — и затем применить его ко всем остальным. Второй вариант будет гораздо проще и быстрее.

В статье разберёмся:

  • как работают макросы и как с их помощью избавиться от рутины в Excel;
  • какие способы создания макросов существуют и как подготовиться к их записи;
  • как записать и запустить макрос начинающим пользователям — на примере со скриншотами.

Общий принцип работы макросов такой:

  • Пользователь записывает последовательность действий, которые нужно выполнить в Excel, — о том, как это сделать, поговорим ниже.
  • Excel обрабатывает эти действия и создаёт для них одну общую команду. Получается макрос.
  • Пользователь запускает этот макрос, когда ему нужно выполнить эту же последовательность действий ещё раз. При записи макроса можно задать комбинацию клавиш или создать новую кнопку на главной панели Excel — если нажать на них, макрос запустится автоматически.

Макросы могут выполнять любые действия, которые в них запишет пользователь. Вот некоторые команды, которые они умеют делать в Excel:

  • Автоматизировать повторяющиеся процедуры.

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

  • Объединять работу нескольких программ Microsoft Office.

    Например, с помощью одного макроса можно создать таблицу в Excel, вставить и сохранить её в документе Word и затем отправить в письме по Outlook.

  • Искать ячейки с данными и переносить их в другие файлы.

    Этот макрос пригодится, когда нужно найти информацию в нескольких объёмных документах. Макрос самостоятельно отыщет её и принесёт в заданный файл за несколько секунд.

  • Форматировать таблицы и заполнять их текстом.

    Например, если нужно привести несколько таблиц к одному виду и дополнить их новыми данными, можно записать макрос при форматировании первой таблицы и потом применить его ко всем остальным.

  • Создавать шаблоны для ввода данных.

    Команда подойдёт, когда, например, нужно создать анкету для сбора данных от сотрудников. С помощью макроса можно сформировать такой шаблон и разослать его по корпоративной почте.

  • Создавать новые функции Excel.

    Если пользователю понадобятся дополнительные функции, которых ещё нет в Excel, он сможет записать их самостоятельно. Все базовые функции Excel — это тоже макросы.

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

В Excel и других программах Microsoft Office макросы создаются в виде кода на языке программирования VBA (Visual Basic for Applications). Этот язык разработан в Microsoft специально для программ компании — он представляет собой упрощённую версию языка Visual Basic. Но это не значит, что для записи макроса нужно уметь кодить.

Есть два способа создания макроса в Excel:

  • Написать макрос вручную.

    Это способ для продвинутых пользователей. Предполагается, что они откроют окно Visual Basic в Еxcel и самостоятельно напишут последовательность действий для макроса в виде кода.

  • Записать макрос с помощью кнопки меню Excel.

    Способ подойдёт новичкам. В этом варианте Excel запишет программный код вместо пользователя. Нужно нажать кнопку записи и выполнить все действия, которые планируется включить в макрос, и после этого остановить запись — Excel переведёт каждое действие и выдаст алгоритм на языке VBA.

Разберёмся на примере, как создать макрос с помощью второго способа.

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

Так выглядят таблицы с продажами автосалона в первоначальном виде
Скриншот: Skillbox Media

Пользоваться таким отчётом неудобно — нужно сделать его наглядным. Запишем макрос при форматировании таблицы с продажами за январь и затем применим его к двум другим таблицам.


Готовимся к записи макроса

Кнопки для работы с макросами в Excel находятся во вкладке «Разработчик». Эта вкладка по умолчанию скрыта, поэтому для начала разблокируем её.

В операционной системе Windows это делается так: переходим во вкладку «Файл» и выбираем пункты «Параметры» → «Настройка ленты». В открывшемся окне в разделе «Основные вкладки» находим пункт «Разработчик», отмечаем его галочкой и нажимаем кнопку «ОК» → в основном меню Excel появляется новая вкладка «Разработчик».

В операционной системе macOS это нужно делать по-другому. В самом верхнем меню нажимаем на вкладку «Excel» и выбираем пункт «Параметры…».

Нажимаем сюда, чтобы вызвать панель с дополнительными параметрами Excel в macOS
Скриншот: Skillbox Media

В появившемся окне нажимаем кнопку «Лента и панель».

Выбираем параметр «Лента и панель»
Скриншот: Skillbox Media

Затем в правой панели «Настроить ленту» ищем пункт «Разработчик» и отмечаем его галочкой. Нажимаем «Сохранить».

Отмечаем пункт «Разработчик» и сохраняем изменения
Скриншот: Skillbox Media

Готово — вкладка «Разработчик» появилась на основной панели Excel.

Теперь можно работать с макросами
Скриншот: Skillbox Media

Чтобы Excel смог сохранить и в дальнейшем использовать макрос, нужно пересохранить документ в формате, который поддерживает макросы. Это делается через команду «Сохранить как» на главной панели. В появившемся меню нужно выбрать формат «Книга Excel с поддержкой макросов».

Перед записью макросов нужно сохранить документ в формате с их поддержкой
Скриншот: Skillbox Media

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

  • Макрос записывает все действия пользователя.

    После старта записи макрос начнёт регистрировать все клики мышки и все нажатия клавиш. Поэтому перед записью последовательности лучше хорошо отработать её, чтобы не добавлять лишних действий и не удлинять код. Если требуется записать длинную последовательность задач — лучше разбить её на несколько коротких и записать несколько макросов.

  • Работу макроса нельзя отменить.

    Все действия, которые выполняет запущенный макрос, остаются в файле навсегда. Поэтому перед тем, как запускать макрос в первый раз, лучше создать копию всего файла. Если что-то пойдёт не так, можно будет просто закрыть его и переписать макрос в созданной копии.

  • Макрос выполняет свой алгоритм только для записанного диапазона таблиц.

    Если при записи макроса пользователь выбирал диапазон таблицы, то и при запуске макроса в другом месте он выполнит свой алгоритм только в рамках этого диапазона. Если добавить новую строку, макрос к ней применяться не будет. Поэтому при записи макроса можно сразу выбирать большее количество строк — как это сделать, показываем ниже.

Для начала записи макроса перейдём на вкладку «Разработчик» и нажмём кнопку «Записать макрос».

Нажимаем сюда, чтобы начать запись макроса
Скриншот: Skillbox Media

Появляется окно для заполнения параметров макроса. Нужно заполнить поля: «Имя макроса», «Сохранить в», «Сочетание клавиш», «Описание».

Так выглядит окно с параметрами макроса
Скриншот: Skillbox Media

«Имя макроса» — здесь нужно придумать и ввести название для макроса. Лучше сделать его логически понятным, чтобы в дальнейшем можно было быстро его найти.

Первым символом в названии обязательно должна быть буква. Другие символы могут быть буквами или цифрами. Важно не использовать пробелы в названии — их можно заменить символом подчёркивания.

«Сохранить в» — здесь нужно выбрать книгу, в которую макрос сохранится после записи.

Если выбрать параметр «Эта книга», макрос будет доступен при работе только в этом файле Excel. Чтобы макрос был доступен всегда, нужно выбрать параметр «Личная книга макросов» — Excel создаст личную книгу макросов и сохранит новый макрос в неё.

«Сочетание клавиш» — здесь к уже выбранным двум клавишам (Ctrl + Shift в системе Windows и Option + Cmd в системе macOS) нужно добавить третью клавишу. Это должна быть строчная или прописная буква, которую ещё не используют в других быстрых командах компьютера или программы Excel.

В дальнейшем при нажатии этих трёх клавиш записанный макрос будет запускаться автоматически.

«Описание» — необязательное поле, но лучше его заполнять. Например, можно ввести туда последовательность действий, которые планируется записать в этом макросе. Так не придётся вспоминать, какие именно команды выполнит этот макрос, если нужно будет запустить его позже. Плюс будет проще ориентироваться среди других макросов.

В нашем случае с форматированием таблицы заполним поля записи макроса следующим образом и нажмём «ОК».

Заполняем поля и жмём «ОК», чтобы начать запись
Скриншот: Skillbox Media

После этого начнётся запись макроса — в нижнем левом углу окна Excel появится значок записи.

Началась запись макроса — теперь в него попадут все клики мышки и нажатия клавиш
Скриншот: Skillbox Media

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

Важно: в нашем случае у таблиц продаж за январь, февраль и март одинаковое количество столбцов, но разное количество строк. Чтобы в случае со второй и третьей таблицей макрос сработал корректно, при форматировании выделим диапазон так, чтобы в него попали не только строки самой таблицы, но и строки ниже неё. Для этого нужно выделить столбцы в строке с их буквенным обозначением A–G, как на рисунке ниже.

Так макрос будет работать и для таблиц с большим количеством строк
Скриншот: Skillbox Media

Если выбрать диапазон только в рамках первой таблицы, то после запуска макроса в таблице с большим количеством строк она отформатируется только частично.

Так макрос отформатирует только выбранные строки: если в других таблицах строк окажется больше, они останутся в первоначальном виде
Скриншот: Skillbox Media

После всех манипуляций с оформлением таблица примет такой вид:

Так выглядит таблица после форматирования
Скриншот: Skillbox Media

Проверяем, все ли действия с таблицей мы выполнили, и останавливаем запись макроса. Сделать это можно двумя способами:

  • Нажать на кнопку записи в нижнем левом углу.
  • Перейти во вкладку «Разработчик» и нажать кнопку «Остановить запись».

Нажимаем сюда, чтобы остановить запись макроса
Скриншот: Skillbox Media

Готово — мы создали макрос для форматирования таблиц в границах столбцов A–G. Теперь его можно применить к другим таблицам.


Запускаем макрос

Перейдём в лист со второй таблицей «Февраль_2022». В первоначальном виде она такая же нечитаемая, как и первая таблица до форматирования.

Так выглядит таблица до запуска макроса
Скриншот: Skillbox Media

Отформатируем её с помощью записанного макроса. Запустить макрос можно двумя способами:

  • Нажать комбинацию клавиш, которую выбрали при заполнении параметров макроса — в нашем случае Option + Cmd + Ф.
  • Перейти во вкладку «Разработчик» и нажать кнопку «Макросы».

Нажимаем сюда, чтобы вызвать панель для выбора макроса
Скриншот: Skillbox Media

Появляется окно — там выбираем макрос, который нужно запустить. В нашем случае он один — «Форматирование_таблицы». Под ним отображается описание того, какие действия он включает. Нажимаем «Выполнить».

Нажимаем сюда, чтобы запустить макрос для форматирования таблицы
Скриншот: Skillbox Media

Готово — вторая таблица с помощью макроса форматируется так же, как и первая.

За пару секунд с помощью макроса исходная таблица принимает такой вид
Скриншот: Skillbox Media

То же самое можно сделать и на третьем листе для таблицы продаж за март. Более того, этот же макрос можно будет запустить и в следующем квартале, когда сервис автосалона выгрузит таблицы с новыми данными.

Научитесь: Excel + Google Таблицы с нуля до PRO
Узнать больше

Время на прочтение
1 мин

Количество просмотров 6.7K

Педагог-новатор Виктор Федорович Шаталов в 70-х годах прошлого века разработал систему обучения с использованием опорных сигналов — взаимосвязанных ключевых слов, условных знаков, рисунков и формул с кратким выводом [1].

Опорным алгоритмом в Excel будем называть набор изображений и алгоритмов (формул), особым образом расположенных на Excel-листе, который помогает активизировать мышление обучающихся.

Приведу пример использования опорного алгоритм в Excel, например, при изучении алгоритма Диффи-Хелмана на занятии по криптографии.

Следуя методике Шаталова последовательность действий такова:

Первый этап. Образно-эмоциональное объяснение учителем материала. Также можно использовать просмотр видео-урока из Академии Хана по основам криптографии:

Второй этап. Сжатое изложение учебного материала с помощью Excel-алгоритма.

image

Рис. Опорный Excel-алгоритм Диффи-Хелмана

Расшифровка алгоритма:

Имеются два простых числа 13 и 7, которые знают Элис и Боб (и открыт для Ив).
Элис и Боб придумывают два числа — 3 и 10 соответственно.
Далее начинается обмен:
Элис отправляет 5 -> =ОСТАТ(F17^C6;F16)
Боб вычисляет общий ключ 12 -> =ОСТАТ(E5^H6;F16)
Боб отправляет 4 -> =ОСТАТ(F17^H6;F16)
Боб вычисляет общий ключ 12 -> =ОСТАТ(F7^C6;F16)
В итоге они имеют общий ключ 12, который не знает Ив.

Далее… закрепление материала, решение задач, использование программы CrypTool, обмен по сети между обучающимися зашифрованными сообщениями.

Подобные Excel-алгоритмы можно встретить в сети, например, Цезаря, Вижинера, Энигму, однако названия этой методике в педагогике не нашел.

Ссылки:

» ru.wikipedia.org/wiki/Шаталов,_Виктор_Фёдорович
» ru.wikipedia.org/wiki/Протокол_Диффи_—_Хеллмана

 

mymen

Пользователь

Сообщений: 35
Регистрация: 14.02.2017

Здравствуйте дорогие коллеги!
На работе часто приходится использовать таблицы с других отделов и иногда очень сложно, а порой и невозможно понять смысл и взаимосвязи формул, которые некоторые «гении» составляют.
Поэтому начали поиск какого либо бесплатного/дешевого приложения или программы, которая могла бы по введенной формуле сама построить блок схему/алгоритм (образец см на рис).
На форуме подобного не нашёл. Может у кого то есть советы где можно найти такую выручалку.
Для примера формула, к которой сейчас рисую блок схему вручную:
ЕСЛИ((ЕСЛИ(ИЛИ(Q49>0;T49<2);4;ЕСЛИ(ИЛИ(СУММ(R49:S49)>5);3;ЕСЛИ(ИЛИ(СУММ(R49:S49)>3;T49<5);2;1)))+P49)=5;4;ЕСЛИ(ИЛИ(Q49>0;T49<2);4;ЕСЛИ(ИЛИ(СУММ(R49:S49)>5);3;ЕСЛИ(ИЛИ(СУММ(R49:S49)>3;T49<5);2;1)))+P49).
Внимание!
Интересует стоимость работы по созданию такого макроса или приложения. Договор на исполнение может быть заключен только после согласования стоимости с моим начальством. Если стоимость для нас слишком высокая, то договор не заключается.

 

Jack Famous

Пользователь

Сообщений: 10848
Регистрация: 07.11.2014

OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome

mymen, зачем создали дубль

этой

темы?

Изменено: Jack Famous15.08.2022 11:16:47

Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄

 

mymen

Пользователь

Сообщений: 35
Регистрация: 14.02.2017

Это не дубль. Здесь задан запрос на оплачиваемую работу, а в другой ветке идёт обсуждение темы.

 

Jack Famous

Пользователь

Сообщений: 10848
Регистрация: 07.11.2014

OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome

Обсуждать нечего — составить инструмент для корректного парсинга любого количества любых функций не то, чтобы невозможно, но очень долго и, как следствие, дорого. Десятки тысяч рублей, на первый взгляд. Может сотни…
Все решения дешевле будут сильно ограничены и работать только с конкретными примерами.

Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄

 

Jack Famous,
я предполагаю, что там не будет множество функций, а будет около 10 основных.
mymen,
какие виды функций могут быть в вашей формуле?

сейчас есть: ЕСЛИ, СУММ, ИЛИ, И
могут ли быть НЕ, МИН, МАКС, СРЗНАЧ, СЧЕТ, СЧЕТЗ?

Изменено: evgeniygeo15.08.2022 12:32:42

 

Jack Famous

Пользователь

Сообщений: 10848
Регистрация: 07.11.2014

OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome

#6

15.08.2022 13:38:14

Цитата
evgeniygeo: я предполагаю, что там не будет множество функций, а будет около 10 основных
Цитата
Jack Famous: Все решения дешевле будут сильно ограничены и работать только с конкретными примерами

:)

Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄

 

Jack Famous,
я понимаю  :D , но я все же уверен, что для 10 функций Вы точно сможете написать код за не очень долгое время  ;)

P.S. вопрос цены не трогаю, т.к. он очень субъективен :)

Изменено: evgeniygeo15.08.2022 13:41:45

 

Jack Famous

Пользователь

Сообщений: 10848
Регистрация: 07.11.2014

OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome

#8

15.08.2022 13:59:59

Цитата
evgeniygeo: я все же уверен, что для 10 функций Вы точно сможете написать код за не очень долгое время

даже пробовать бы не стал) это неблагодарная работа — я не вижу смысла даже в успешном результате. Что конечная блок-схема может дать пользователю и как она вообще должна/может выглядеть? По мне, это абсолютно бесполезная затея, но ТС имеет право пытаться воплотить в жизнь любую идею, более того, уверен, что ему в этом помогут. Но не я  :)
К тому же, я могу ошибаться и идея окажется бомбой, но пока не вижу для этого никаких предпосылок…

Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄

 

mymen

Пользователь

Сообщений: 35
Регистрация: 14.02.2017

#9

15.08.2022 14:49:51

Цитата
написал:
какие виды функций могут быть в вашей формуле?

Основные математические, логические и статистические

 

Joiner

Пользователь

Сообщений: 408
Регистрация: 23.01.2014

ТС не представляет размеры бедствия.
Для начала нужно разобраться с уровнями вложенности в формуле, и эта программа уже должна быть универсальной. В результате должно получится дерево. Потом нужно, что бы программа шла по всем уровням сверху вниз на каждом шаге разбирая функции. И это программа тоже должна быть универсальной, не зависящей от количества функций и вложенности.

Еще, как вы представляете разбор функции? Например, функция «ИЛИ» по большому счету набор из функций «ЕСЛИ», если одно из условий=да, то и всё ИЛИ=да. То есть каждая функция — это уже сам по себе небольшой алгоритм. Или функции МАКС/МИН — это вполне самостоятельная программа со своим немаленьким алгоритмом. Бухгалтерские и статистические функции вообще без комментариев.
В результате ваша формула из примера примет вид блок схемы на несколько листов. Вряд ли это поможет понять формулу.

Никому не отвечай, кoгда ты зол, ничего не обeщай, когда ты счастлив, никогда нe решай, когда ты грустeн.

 

mymen

Пользователь

Сообщений: 35
Регистрация: 14.02.2017

#11

15.08.2022 14:53:35

Цитата
написал:
как она вообще должна/может выглядеть?

смотрите приложение в первом посте.

Цитата
написал:
я могу ошибаться и идея окажется бомбой

Вот это скорее всего.

 

Msi2102

Пользователь

Сообщений: 3137
Регистрация: 31.03.2014

#12

15.08.2022 15:00:58

Цитата
Joiner написал:
ТС не представляет размеры бедствия.

Я скажу больше, ТС даже не представляет как это должно выглядеть, что удваивает размер бедствия.

 

Jack Famous

Пользователь

Сообщений: 10848
Регистрация: 07.11.2014

OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome

#13

15.08.2022 15:02:55

Цитата
mymen: смотрите приложение в первом посте

с таким подходом, шансы на реализацию вашей гениальной затеи почти не осталось  :cry:
Шутка, конечно, невероятно смешная, браво. Вам ещё бы башмаки большие, костюм цветастый и большой круглый красный нос…

Изменено: Jack Famous15.08.2022 15:04:02

Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄

 

mymen

Пользователь

Сообщений: 35
Регистрация: 14.02.2017

#14

15.08.2022 15:04:11

Цитата
написал:
Я скажу больше, ТС даже не представляет как это должно выглядеть, что удваивает размер бедствия

Не согласен! Я же приложил пример в первом посте.

 

mymen

Пользователь

Сообщений: 35
Регистрация: 14.02.2017

#15

15.08.2022 15:05:52

Цитата
написал:
Вам ещё бы башмаки большие, костюм цветастый и большой круглый красный нос…

Тогда нас с Вами будет двое. Зачем мне Вас копировать?

 

Jack Famous

Пользователь

Сообщений: 10848
Регистрация: 07.11.2014

OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome

Msi2102, и это НАЧАЛЬНИК, прикинь  :D

Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄

 

Joiner

Пользователь

Сообщений: 408
Регистрация: 23.01.2014

mymen,  Вы бы огласили максимальный бюджет. Как правильно заметил Jack Famous,  тут суммы с 4-5 нулями. Такое продвинутое начальство редко встречается.  

Никому не отвечай, кoгда ты зол, ничего не обeщай, когда ты счастлив, никогда нe решай, когда ты грустeн.

 

Msi2102

Пользователь

Сообщений: 3137
Регистрация: 31.03.2014

#18

15.08.2022 15:12:00

Цитата
Jack Famous написал:
и это НАЧАЛЬНИК, прикинь

Неее это подчиненный, это хуже, если начальство не понимает отдает подчиненным, а если и подчиненный не понимает, то это полный alles kaputt

 

Jack Famous

Пользователь

Сообщений: 10848
Регистрация: 07.11.2014

OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome

#19

15.08.2022 15:13:57

Цитата
Msi2102: это подчиненный

у него в профиле написано)

Цитата
Joiner: огласили максимальный бюджет

боюсь, потенциальные исполнители будут весьма разочарованы  :D

Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄

 

Msi2102

Пользователь

Сообщений: 3137
Регистрация: 31.03.2014

Joiner, А Вы читали

ТУТ

полную версию, возможно решение никогда не будет найдено

 

mymen

Пользователь

Сообщений: 35
Регистрация: 14.02.2017

Зачем засоряете чужие темы. Не можете/не хотите браться за работу проходите мимо. Хватит флудить!

 

Jack Famous

Пользователь

Сообщений: 10848
Регистрация: 07.11.2014

OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome

Msi2102, если ТС является начальником ОНиПБ (Отдел Надёжности и Промышленной Безопасности), то становится реально страшно  :(
К тому же, не знает, как правильно писать аббревиатуру своего отдела :D

Изменено: Jack Famous15.08.2022 15:27:48

Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄

 

Msi2102

Пользователь

Сообщений: 3137
Регистрация: 31.03.2014

#23

15.08.2022 15:53:10

Цитата
mymen написал:
Не можете/не хотите браться за работу проходите мимо

Вы все-таки озвучьте максимальную сумму, чтобы все прошли мимо

 

evgeniygeo

Пользователь

Сообщений: 2276
Регистрация: 19.06.2018

#24

16.08.2022 05:55:29

боюсь, что при таком обширном ответе цена и время работы и правда будут заоблачными

Цитата
mymen написал:
Основные математические, логические и статистические
 

БМВ

Модератор

Сообщений: 21380
Регистрация: 28.12.2016

Excel 2013, 2016

#25

17.08.2022 15:54:40

Тему в обычной ветке закрыл, а вот эта уже на грани закрытия. Нафлудили тут изрядно.

По вопросам из тем форума, личку не читаю.

Понравилась статья? Поделить с друзьями:
  • Введите целое число excel
  • Введите формулу в ячейку excel
  • Введите символ с которого начинается формула в excel
  • Введите результат полученный по формуле в excel
  • Введите пароль для открытия файла word