Избранное

Максим Ильяхов, Людмила Сарычева.... Авторы на конкретных примерах в книге «Пиши, сокращай» показывают, что такое хорошо и что такое плохо в информационных,...

Далее

Николай Власов. Гельмут фон... Гельмут фон Мольтке (1800–1891) – выдающийся военачальник, который сыграл заметную роль в немецкой и мировой военной...

Далее

Диспетчер сценариев для анализа... Признаком качественно выполненной прогнозной модели является наличие анализа чувствительности параметров модели....

Далее

Гаррингтон Эмерсон. Двенадцать... Книга известного американского инженера-рационализатора организации производства Г. Эмерсона вызвала в свое...

Далее

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

Далее

Использование функции VBA Evaluate вместо цикла

Рубрика: 7. Полезняшки Excel

Это глава из книги Билла Джелена Гуру Excel расширяют горизонты: делайте невозможное с Microsoft Excel.

Задача: необходимо изменить все ячейки диапазона на основе расчета. Вы планируете в коде VBA запустить цикл и перебрать все ячейки:

For Each cell In Selection
    cell.Value = -1 * cell.Value
Next cell

Решение: функция Evaluate позволяет выполнить эту работу быстрее цикла. Замените приведенный выше фрагмент кода одной строкой:

Selection.Value = Evaluate(Selection.Address & "*-1")

Далее

Как узнать путь к папке TEMP

Рубрика: 7. Полезняшки Excel

Это глава из книги Билла Джелена Гуру Excel расширяют горизонты: делайте невозможное с Microsoft Excel.

Задача: я хочу найти путь к папке TEMP в VBA. Решение: чтобы на вашем компьютере найти путь к папке TEMP, используйте код VBA:

TempPath = Environ("Temp")

Функция Environ помимо обнаружения пути к папке TEMP, дает большое количество информации о системе. Однако, вы должны быть аккуратны, потому что переменные функции, присутствующие на одном компьютере, могут отсутствовать на другом. Чтобы узнать, какие переменные доступны в вашей системе, используйте следующий код:

Sub ListEnvironVariables()
    For i = 1 To 99
        Cells(i, 1).Value = Environ(i)
    Next i
End Sub

Когда вы запустите этот код, вы получите список доступных переменных (рис. 1). Каждая строка здесь содержит имя переменной, знак равенства и значение переменной для данного компьютера.

Рис. 1. Значение переменных функции Environ

Рис. 1. Значение переменных функции Environ

Далее

Использование таймера для сравнения производительности формул

Рубрика: 7. Полезняшки Excel

Это глава из книги Билла Джелена Гуру Excel расширяют горизонты: делайте невозможное с Microsoft Excel.

Задача: два гуру Excel заходят в бар. Один из них говорит, что быстрее работает формула =МАКС(0;МИН(A1;B1)), а другой – что =МЕДИАНА(0;A1;B1). Кто из них прав?

Решение: вы можете найти ответ путем использования макроса VBA для вычисления каждой формулы 50 000 раз. Прежде чем стартует макрос, вы сохраняете значение таймера в переменную. Когда 50 000 расчетов завершится, можно сравнить исходное и конечное значения таймера.

На ПК под управлением Windows, таймер показывает количество секунд и долей секунды, прошедших с полуночи. На Mac, функция возвращает только целые секунды, так что процесс вычислений нужно повторить достаточное количество раз, чтобы увидеть разницу в секундах. Также, убедитесь, что во время работы макроса не начался новый день (вы не перешли через полночь).

Рис. 1. МЕДИАНА работает немного медленнее, чем связка МАКС(МИН())

Рис. 1. МАКС(МИН()) работает немного медленнее, чем МЕДИАНА()

Далее

Нахождение наиболее близкого значения

Рубрика: 7. Полезняшки Excel

Это глава из книги Билла Джелена Гуру Excel расширяют горизонты: делайте невозможное с Microsoft Excel.

Задача: люди вводят данные различными способами. Если вы попросите 50 торговых представителей записать прогноз для Дженерал Моторс, вы обнаружите дюжину различных способов написания названия компании или ее аббревиатуры. Объединить прогнозы от всех торговых представителей будет непросто. В столбце А (рис. 1) показаны некоторые способы написания имен клиентов, чьи официальные названия приведены в столбце D.

Рис. 1. Когда предложено ввести имена клиентов, сотрудники воспользуются разными написаниями или сокращениями

Рис. 1. Когда предложено ввести имена клиентов, сотрудники воспользуются разными написаниями или сокращениями

Далее

Чарльз Маккей. Наиболее распространенные заблуждения и безумства толпы

Рубрика: 11. О разном

Книга Чарльза Маккея является подборкой наиболее выдающихся заблуждений и безумств человечества: от финансовых пирамид до религиозных психозов. Она стала классическим трудом о массовых маниях, поведении толпы и человеческой глупости. «Заблуждения» и «безумства», изложенные в книге, относятся к хроническим «болезням» человечества. Финансовые пирамиды, коррумпированность власти, фальсификации и самообман мнимых врачевателей и пророков — все это было, есть и будет. Впервые на английском языке книга вышла в 1841 г. Написана (или переведена на русский) очень современным языком.

Книга довольно часто цитируется. Я встретил ссылку на нее в Карл Эдвард Саган. Мир, полный демонов. Наука — как свеча во тьме и Дункан Уоттс. Здравый смысл врет. Почему не надо слушать свой внутренний голос.

Чарльз Маккей. Наиболее распространенные заблуждения и безумства толпы. – М.: Альпина Паблишер, 2015. – 684 с.

Чарльз Маккей. Наиболее распространенные заблуждения и безумства толпы. Обложка

Далее

Извлечение адреса электронной почты из ячейки, содержащей другой текст

Рубрика: 7. Полезняшки Excel

Это глава из книги Билла Джелена Гуру Excel расширяют горизонты: делайте невозможное с Microsoft Excel.

Задача: у вас есть ячейки, содержащие адреса электронной почты, а также другой текст. Вам нужно извлечь адреса электронной почты.

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

Макрос

В основе макроса лежит функция VBA Split. Допустим, что ячейка содержит текст Write to lora@mrexcel.com to book a seminar. Если передать этот текст в функцию Split и указать, что текст следует разбить на элементы, разделенные пробелом – x = Split(cell.Value, " ") – VBA вернет массив, где каждое слово будет элементом массива. На рис. 1 показан массив x после использования функция Split.

Рис. 1. Функция Split возвращает массив, где каждое слово будет элементом массива

Рис. 1. Функция Split возвращает массив, где каждое слово будет элементом массива

Далее

Создание макроса обработчика событий

Рубрика: 7. Полезняшки Excel

Это глава из книги Билла Джелена Гуру Excel расширяют горизонты: делайте невозможное с Microsoft Excel.

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

Рис. 1. Для доступа к коду объекта ThisWorkbook кликните на ней правой кнопкой мыши и выберите View Code

Рис. 1. Для доступа к коду объекта ThisWorkbook кликните на ней правой кнопкой мыши и выберите View Code

Далее

Создание обычного макроса

Рубрика: 7. Полезняшки Excel

Это глава из книги Билла Джелена Гуру Excel расширяют горизонты: делайте невозможное с Microsoft Excel.

Задача: вы нашли интересный макрос на сайте MrExcel или Планета Excel. Ваша книги Excel в настоящее время не имеют каких-либо макросов. Как вставить макрос в книгу?

Решение: вы можете ввести обычный макрос в модуль в редакторе VBA. Откройте книгу Excel, в которой хотите сохранить макрос. Перейдите в редактор VBA, нажав Alt+F11 или пройдите по меню РАЗРАБОТЧИК –> Visual Basic (редактор VBA не русифицирован). В редакторе VBA пройдите по меню Insert –> Module (рис. 1).

Рис. 1. Создание нового модуля VBA

Рис. 1. Создание нового модуля VBA

Далее

Запуск макроса иконкой

Рубрика: 7. Полезняшки Excel

Это глава из книги Билла Джелена Гуру Excel расширяют горизонты: делайте невозможное с Microsoft Excel.

Задача: в двух предыдущих заметках мы рассказали, как запускать макросы клавиатурными сокращениями и кнопками, расположенными на листе Excel. Можно ли запустить макрос значком на панели инструментов?

Решение: почему-то при переходе с версии Excel 2003 на 2007 Microsoft уменьшил возможности использования иконок для запуска макросов. В Excel 2007 остался единственный способ (кроме кода VBA) использования иконок – добавление кнопки макроса на панель быстрого доступа. Выполните следующие действия.

Кликните правой кнопкой мыши в любом месте ленты и выберите Настройка панели быстрого доступа (рис. 1).

Рис. 1. Запуск настройки панели быстрого доступа

Рис. 1. Запуск настройки панели быстрого доступа

Далее

Запуск макроса кнопкой

Рубрика: 7. Полезняшки Excel

Это глава из книги Билла Джелена Гуру Excel расширяют горизонты: делайте невозможное с Microsoft Excel.

Задача: в предыдущей заметке мы рассказали, как запускать макросы клавиатурными сокращениями. Можно ли для этой цели использовать кнопки на листе?

Решение: существует множество способов запустить макрос кнопкой (рис. 1).

Рис. 1. Вы можете запустить макрос с помощью любого из этих элементов

Рис. 1. Вы можете запустить макрос с помощью любого из этих элементов

Далее