Сразу бы хотели отметить, что все рабочие проекты выполнены в Excel версии 2013 (Eng) и выше на пратформе Windows. Не особо много различий с предыдущими версиями, однако наши примеры будут сохраняться именно в этом формате, и при открытии файлов в Excel 2003-2010 могут возникать конфликты (но не обязательно).
Также для новичков на официальном сайте Microsoft создан курс обучения по разным продуктам Office и другим часто используемым приложениям, где много видеоуроков работы с программами а также ответы на актуальные вопросы, описание новых возможностей Office и пути решения проблем. С этого же официального сайта мы рекомендуем загружать Office (или его отдельные программы), для избежания загрузки на собственный компъютер вредоносных программ и тогда ежедневная работа будет не только приятной но и безопасной, что немаловажно.
Мы не будем повторять материал, который уже есть на официальном сайте Microsoft Office, и описывать первые шаги работы с таблицами в Excel, на нашем сайте уделим внимание работе с формулами и дополнительной поддержке макросов, что феноменально ускоряет работу и делает проекты очень удобными.
Несколько важных замечаний при работе с документами:
- Периодически самостоятельно сохраняйте изменения, которые осуществляете. Это тем более важно при длительной работе с файлами, когда мы делаем перерывы в работе, отвлекаемся на другие задачи или используем много открытых окон/программ одновременно. Критические ошибки в программах возникают не часто но всегда в самый неподходящий момент и это правило позволит не потерять все важные данные в один миг. Office приложения поддерживают автоматическое сохранение однако не считаются очень стабильными, восстановить аварийно закрытый документ с последними изменениями можно, но попробуйте нажимать Ctrl + S после добавления изменений и убедитесь, что это проще.
- Тестируйте проект по мере его создания. Если используете Excel не только для просмотра таблиц, которые вам отправляют, а сами создаёте проекты, проверяйте сразу те участки кода/формулы, которые написали. Не откладывайте тестирование на сам финал, иначе если результаты окажутся неверными (а так бывает часто) найти ошибку сложно а времени на исправление нужно много. Сделали -> сохранили -> протестировали!
- Пишите короткий код. Не стоит в ячейку записывать многоуровневые(вложенные) формулы, или писать весь исполняемый код VBA в одну функцию. Пишите более современные программы используя процедурный стиль, разбивайте сложные формулы на отдельные составляющие и записывайте в отдельные ячейки чтобы пошагово выполнять подсчёт, код макросов выносите в отдельные функции, которые можно будет использовать в разных местах программы. Пример формул.
Обратите внимание, в оригинальной версии пакета Office для разделения аргументов в формулах и для разделения ячеек в файлах формата .csv используется символ ;(точка с запятой), в локализированном варианте на русском или украинском языке используется ,(запятая). Это важно при импортировании или экспортировании документа, в диалоговом окне нужно будет выбрать необходимый символ разделения.
Формулы в ячейках непосредственно, как правило, вводят на языке приложения, например: на оригинальном языке "=SUM(A1:A10)", на местном языке "=СУММ(A1:A10)", однако если формулу нужно добавить в ячейку как строковое значение используя VBA она всегда будет в оригинальном варианте.
В открытом доступе можно найти много разнообразных примеров и даже готовых решений многих задач, не забывайте про безопасность собственного компъютера, когда открываете файлы со сторонних и малоизвестных сайтов. Используя макросы и vba в Excel можно написать огромное количество полезных и удобных сценариев, однако с таким же успехом это может быть и вредоносный код. Проверяйте при возможности что находится внутри выполняемого кода, про безопасность читайте в статье.
Для примера рассмотрим решение квадратного уравнения, где в ячейках A1, B1, C1 запишем соответствующие параметры a, b, c. Как может выглядеть сложная вложення формула в одной ячейке A2 и результат выполнения формулы в ячейке B2:
|
A |
B |
C |
D |
E |
1 |
2 |
4 |
-6 |
|
|
2 |
=CONCATENATE((-B1+SQRT(POWER(B1;2)-4*A1*C1))/(2*A1);",";(-B1-SQRT(POWER(B1;2)-4*A1*C1))/(2*A1)) |
1,-3 |
|
|
|
Безусловно такой вариант может существовать, но не долго. Дело в том, что может быть разное количество ответов при разных входящих параметрах, если пробовать в текущую формулу добавлять проверку промежуточного результата дискриминанта - получится очень сложно.
Намного лучше сохранять отдельно каждый шаг вычислений:
|
A |
B |
C |
D |
E |
1 |
2 |
4 |
-6 |
|
|
2 |
=POWER(B1;2)-4*A1*C1 |
=IF(A2>=0;(-B1+SQRT(A2))/(2*A1);"") |
=IF(A2>0;(-B1-SQRT(A2))/(2*A1);"") |
=IF(COUNT(B2:C2)=0;"no result";CONCATENATE(B2;",";C3)) |
|
3 |
64 |
1 |
-3 |
1,-3 |
|
В строке 3 результаты выполнения формул строки 2!
Во втором варианте у нас больше контроля над результатами, лучше просматривается каждый шаг вычислений и проще в отладке. Можно было дополнительного создать описание для ячеек, чтобы не забыть в будущем для чего так много их создавали.
Обычно формулы с промежуточными вычислениями размещают фоновым цветом за пределами основного пользовательского интерфейса, например в ячейках BA1 или дальше, где редко используется лист. Важно создавать описания ячеек, в которых проводим вычисления, тогда сами сможем вспомнить или другие разработчики смогут разобраться в структуре нашего проекта через некоторое время.
|