Использование формул и макросов в Excel
|
|
#1 Сб Окт 24, 2009 13:27:43
|
|
|
Добрый день! Поделитесь опытом работы в Excel, думаю в нем работают большинство пользователей.
Вопрос: как все значения выбранного массива ячеек умножить или разделить на одно и то же число?
Есть такой способ, минус - слетают формулы, для чего необходимо: допустим таблица в тенге - нужно быстро перевести в тыс.тенге (*0,001 или /1000)
Sub MultAllCells()
Dim dblMult As Double
Dim cell As Range
' Ввод коэффициента для умножения
dblMult = InputBox("Введите коэффициент, на который следует умножать")
' Умножение содержимого на введенный коэффициент
For Each cell In Selection
If IsNumeric(cell.Value) And cell.Value <> " " Then
' Умножаются только ячейки, содержащие числовые данные
cell.Value = cell.Value * dblMult
Else
MsgBox "В ячейке " & cell.Address & " нечисловое значение"
End If
Next
End Sub
Добавлено спустя 4 минуты 8 секунд:
Пример
Переименовано и перенесено в другой подфорум = Elis
Добавлено спустя 18 минут 33 секунды:
Я был бы рад, чтобы это сделалось и без макросов, а штатными возможностями Excel
|
|
За помощь кликните ′Спасибо′ →
|
|
|
|
#2 Сб Окт 24, 2009 14:04:10
|
|
|
Алекс Мневис говорит: |
Вопрос: как все значения выбранного массива ячеек умножить или разделить на одно и то же число? |
штатными возможностями Excel A1/$B$1 это значит ячейку A1 делить на постоянную величину ячейки B1
|
|
За помощь кликните ′Спасибо′ →
|
|
|
|
#3 Сб Окт 24, 2009 14:55:49
|
Сообщить модератору
|
|
Если бы все было так просто.
Ему надо, чтобы значение изменилось в той же же ячейке, а не в другие ячейки записать сумму не в "тенге", а в "тыс.тенге".
А в той же ячейке это будут циклические ссылки. К тому же у него в массиве (в таблице) есть и значения, которые нужно умножать, а есть и формулы. А их нужно оставить. Я знаю, с чем это он там мучается. Так что без макросов я выхода не вижу. Самый красивый "однокнопочный" выход поставленной задачи.
Ну не будете же вы, Алекс Мневис, это записывать на другой лист Excel, а потом вручную копировать значения отдельных колонок нового массива поверх тех же колонок старого?
Алекс Мневис, я бы помогла, но у меня сейчас, правда, времени нет.
Я не ас в макросах, мне на это день убить надо.
Пусть спецы быстренько напишут.
|
|
За помощь кликните ′Спасибо′ →
|
|
|
|
|
За помощь кликните ′Спасибо′ →
|
|
|
|
#5 Вт Окт 27, 2009 19:42:16 Сказали Спасибо❤
|
|
|
Если кому интересно, нашел более простое решение:
Если вопрос в том, как умножить числа во множестве ячеек на листе, то решение в использовании Специальной вставки
- вводим в свободной ячейке 1.20 (т.е.120%)
- копируем эту ячейку
- выделяем всю область (все области) ячеек с числами, которые нужно увеличить
- правая клавиша мыши
- контектное меню - специальная вставка - операция - умножить - ОК.
|
|
За помощь кликните ′Спасибо′ →
|
|
|
|
#6 Вт Апр 19, 2011 21:33:57 Сказали Спасибо❤
|
|
|
Может кому пригодится - как преобразовать число в Excel в пропись
1. Excel - Севис - Надстройки - Обзор - указываем путь к сохраненному файлу - ОК
2. В нужной ячейке - Вставка - Функция - Категория - Определенный пользователем - Указываем ячейку с числом, которое нужно преобразовать
Добавлено спустя 1 минуту 14 секунд:
Файл надстройки
|
|
За помощь кликните ′Спасибо′ →
|
|
|
|
#7 Вт Апр 19, 2011 23:03:00
|
Сообщить модератору
|
|
Алекс Мневис, спасибо!
Только в Офисе-2007 немного по-другому.
1. Кнопка "Qffice" (цветная круглая в левом верхнем углу) - Параметры Excel - Надстройки - Перейти - Обзор - указываем путь к сохраненному файлу - ОК
А вот пункт 2 не могу выполнить, на вкладке Вставка не нахожу Функция. Может в офисе-2007 как-то по-другому надо, а как - не могу сообразить.
|
|
За помощь кликните ′Спасибо′ →
|
|
|
|
#8 Ср Апр 20, 2011 06:20:54
|
|
|
Рита,
Рита говорит: |
А вот пункт 2 не могу выполнить, на вкладке Вставка не нахожу Функция. Может в офисе-2007 как-то по-другому надо, а как - не могу сообразить. |
я здесь не смогу подсказать - не работал в 2007
|
|
За помощь кликните ′Спасибо′ →
|
|
|
|
#9 Ср Апр 20, 2011 10:15:35
|
Сообщить модератору
|
|
Разобралась. Не дошло сразу, что надо вставлять как обычную функцию, думала, что через специальную вставку.
Итак, для Офис-2007:
2. Формулы - Вставить функцию -Категория - Определенные пользователем - Указываем ячейку с числом, которое нужно преобразовать
|
|
За помощь кликните ′Спасибо′ →
|
|
|
|
|
За помощь кликните ′Спасибо′ →
|
|
|
|
|
За помощь кликните ′Спасибо′ →
|
|
|
|
#12 Ср Апр 20, 2011 11:38:25
|
|
|
Мэс, если есть желание и время хотелось бы знать как вообще задать формулу , в екселе знаю только элементарные математические действия(+, -,) функции это темный лес для меня. Так и не поняла как
Алекс Мневис говорит: |
преобразовать число в Excel в пропись |
|
|
За помощь кликните ′Спасибо′ →
|
|
|
|
#13 Ср Апр 20, 2011 12:20:18
|
Сообщить модератору
|
|
павлин1980 говорит: |
Мэс, если есть желание и время хотелось бы знать как вообще задать формулу , в екселе знаю только элементарные математические действия(+, -,) функции это темный лес для меня. Так и не поняла как
Алекс Мневис говорит: |
преобразовать число в Excel в пропись |
|
Желание есть, со временем не все так радужно. Но.
Попробую рассказать касательно преобразования числа в пропись в Excel.
В программе MS Excel уже есть огромное количество встроенных функций, многие из них очень полезны, особенно логические, текстовые, математические, финансовые. Этих функций достаточно, чтобы решить почти любую задачу как финансового так и не финансового характера. Бухгалтеру очень полезно ими пользоваться. Например, у одного моего клиента пошла разница по НДС. За весь 2010 год. С помощью встроенных отчетов в 1С ошибку найти невозможно. А Excel помог в кратчайшие сроки выяснить, где пошла разница.
Но бывает так, что встроенных функций недостаточно. И Excel был бы просто таблицей, если бы не было поддержки макросов. А с помощью макросов (написанных на языке VBA - Visual Basic for Applications) можно творить настоящие чудеса.
Ну это все лирика. Тут выше дали ссылку на макрос, который число преобразует в текст-пропись. Принцип работы его прост: на вход макросу даем число (это параметр функции), а он возвращает текст. Макрос число разбивает на миллионы, тысячи, единицы, каждому из этих чисел сопоставляет название прописью и получает текстовую строку.
Если у функции указано, что она PUBLIC (это по русски - параметр видимости: если PUBLIC - то функция видна прямо в книге Excel), то ее можно вызывать, набирая в ячейке название функции, в нашем случае называется она СУММ_ПРОП_ТЕНГЕ(). То есть так и пишем в ячейке "=СУММ_ПРОП_ТЕНГЕ(Ячейка_с_числовым_значением)".
Теперь, как сделать, чтобы это функция работала всегда, а не приходилось каждый раз запускать файл Тенге_прописью.xla. XLA - это файл-шаблон. Когда вы его запускаете, в книгах Excel становятся доступны макросы, которые есть в этом шаблоне. Но так работать неудобно.
Лучше файл прописью.xla разместить там, где лежат другие шаблоны (например: для MS Office 2010 c:\Program Files\Microsoft Office\Office14\Library\), далее заходим в Надстройки (для MS Office 2010 - Файл -> Параметры -> Надстройки. Управление "Надстройки Excel" -> Перейти. Нажимаем "Обзор", ищем наш файл. Он появится в списке надстроек. Ставим галочку и Ok). Теперь в любой книге будет работать этот макрос.
PS: Для старых версий Ms Office, ниже версии 2007, уже не помню как найти управление надстройками.
|
|
За помощь кликните ′Спасибо′ →
|
|
|
|