Как в экселе сделать формулу с условиями



  • Summa propisiu 1 Как создается сумма прописью в Excel?       Добрый день уважаемый читатель!

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

           Решить эту проблему можно несколькими способами:

    1. С помощью формул;
    2. С помощью пользовательской функции;
    3. С помощью VBA.

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

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

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

         Для этого вам необходимо выполнить некоторые действия. Сначала скачиваете файл надстройки здесь. После, переносите его в папку AddIns, которую можно найти по пути C:\Documents and Settings\User\Application Data\Microsoft\AddIns, только вы вместо «User» подставляете имя вашего пользователя Windows. Еще может возникнуть проблема в отображении папки «Application Data», она может быть скрыта, тогда вам в настройках «Свойства папки» нужно активировать пункт «Показать скрытые файлы и папки». Summa propisiu 2 Как создается сумма прописью в Excel?      Теперь собственно и приступим к включении этой надстройки. В Excel выбираем «Файл» — «Параметры» — «Надстройки». Summa propisiu 3 Как создается сумма прописью в Excel?      В диалоговом окне «Настройки» ставим галочку напротив включаемой надстройки «Сумма Прописью» и нажимаем «ОК». Summa propisiu 4 Как создается сумма прописью в Excel?    Следующим шагом, ставим курсор на нужную ячейку и вызываем «Мастер функций». В разделе «Категория» выбираем пункт «Определенные пользователем» и теперь весть список встроенных функций по написанию сумм прописью нам доступен. Кстати как видите, доступен даже выбор функций в разрезе валют. Сразу замечу, что надстроек бывает много, есть и более расширенные, но эта меня полностью устраивает, вот я ее и описываю. Summa propisiu 5 Как создается сумма прописью в Excel?      В результате мы получаем возможность получить следующие данные: Summa propisiu 6 Как создается сумма прописью в Excel?

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

    • Комбинацией горячих клавиш ALT+F11 вызвать редактор Visual Basic;
    • С помощью меню «Insert» — «Module», создать пустой новый модуль;
    • Скопировать предоставленный код макроса в тело модуля.

          Получается готовая пользовательская функция VBA, которая умеет превращать любую сумму от 0 до 9 999 999 в ее текстовое воплощение, создается сумма прописью.

          Код нужного макроса выглядит так:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38

    39

    40

    41

    42

    43

    44

    45

    46

    47

    48

    49

    50

    51

    52

    53

    54

    55

    56

    57

    58

    59

    60

    61

    62

    63

    64

    65

    66

    67

    68

    69

    70

    71

    72

    73

    74

    75

    76

    77

    78

    79

    80

    81

    82

    Function СУММАПРОПИСЬЮ(n As Double) As String

       Dim Nums1, Nums2, Nums3, Nums4 As Variant

          Nums1 = Array("", "один ", "два ", "три ", "четыре ", "пять ", "шесть ", "семь ", "восемь ", "девять ")

          Nums2 = Array("", "десять ", "двадцать ", "тридцать ", "сорок ", "пятьдесят ", "шестьдесят ", "семьдесят ", _

                  "восемьдесят ", "девяносто ")

          Nums3 = Array("", "сто ", "двести ", "триста ", "четыреста ", "пятьсот ", "шестьсот ", "семьсот ", _

                 "восемьсот ", "девятьсот ")

          Nums4 = Array("", "одна ", "две ", "три ", "четыре ", "пять ", "шесть ", "семь ", "восемь ", "девять ")

          Nums5 = Array("десять ", "одиннадцать ", "двенадцать ", "тринадцать ", "четырнадцать ",

                 "пятнадцать ", "шестнадцать ", "семнадцать ", "восемнадцать ", "девятнадцать ")

        If n <= 0 Then

            СУММАПРОПИСЬЮ = "ноль"

    Exit Function

    End If

     'разделяем число на разряды, используя вспомогательную функцию Class

       ed = Class(n, 1)

       dec = Class(n, 2)

       sot = Class(n, 3)

       tys = Class(n, 4)

       dectys = Class(n, 5)

       sottys = Class(n, 6)

       mil = Class(n, 7)

       decmil = Class(n, 8)

     

    'проверяем миллионы

    Select Case decmil

       Case 1

         mil_txt = Nums5(mil) & "миллионов "

         GoTo www

       Case 2 To 9

         decmil_txt = Nums2(decmil)

    End Select

    Select Case mil

       Case 1

         mil_txt = Nums1(mil) & "миллион "

       Case 2, 3, 4

         mil_txt = Nums1(mil) & "миллиона "

       Case 5 To 20

         mil_txt = Nums1(mil) & "миллионов "

    End Select

    www:

    sottys_txt = Nums3(sottys)

    'проверяем тысячи

    Select Case dectys

       Case 1

         tys_txt = Nums5(tys) & "тысяч "

         GoTo eee

       Case 2 To 9

         dectys_txt = Nums2(dectys)

    End Select

    Select Case tys

       Case 0

         If dectys > 0 Then tys_txt = Nums4(tys) & "тысяч "

       Case 1

         tys_txt = Nums4(tys) & "тысяча "

       Case 2, 3, 4

         tys_txt = Nums4(tys) & "тысячи "

       Case 5 To 9

         tys_txt = Nums4(tys) & "тысяч "

    End Select

    If dectys = 0 And tys = 0 And sottys <> 0 Then sottys_txt = sottys_txt & " тысяч "

    eee:

    sot_txt = Nums3(sot)

    'проверяем десятки

    Select Case dec

       Case 1

         ed_txt = Nums5(ed)

         GoTo rrr

       Case 2 To 9

         dec_txt = Nums2(dec)

    End Select

    ed_txt = Nums1(ed)

    rrr:

    'формируем итоговую строку

    СУММАПРОПИСЬЮ = decmil_txt & mil_txt & sottys_txt & dectys_txt & tys_txt & sot_txt & dec_txt & ed_txt

    End Function

    'вспомогательная функция для выделения из числа разрядов

    Private Function Class(M, I)

      Class = Int(Int(M - (10 ^ I) Int(M / (10 ^ I))) / 10 ^ (I - 1))

    End Function

          Сохраняете внесенные изменения и теперь можно пользоваться новой функцией, как и прочими, она отображается в «Мастере функций» в категории «Определенные пользователем» или же просто вручную ввести ее в ячейке указав какую сумму необходимо сделать прописной. Summa propisiu 7 Как создается сумма прописью в Excel?

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

          =СУММАПРОПИСЬЮ(A3)&" руб. «&ТЕКСТ((A3-ЦЕЛОЕ(A3))100;»00")&" коп."

        Приставку «Module2» в моей формуле можете опустить, так как таким образом, программа разделяет 2 похожие формулы, одна от установленных надстроек, а вторая от макроса.

    Summa propisiu 8 Как создается сумма прописью в Excel?     А на этом у меня всё! Я очень надеюсь, что всё о том, как ваши цифры сделать прописными вам понятно. Буду очень благодарен за оставленные комментарии, так как это показатель читаемости и вдохновляет на написание новых статей! Делитесь с друзьями прочитанным и ставьте лайк!

         Не забудьте поблагодарить автора!

    Что такое ограбление банка по сравнению с основанием банка?
    Бертольт Брехт​

    Статья помогла? Поделись ссылкой с друзьями, твитни или лайкни!


    Поделись с друзьями



    Рекомендуем посмотреть ещё:


    Закрыть ... [X]

    ТРАНСП - Автоматическое транспонироване данных в Excel SirExcel - Как я заработал своими руками

    Как в экселе сделать формулу с условиями Как в экселе сделать формулу с условиями Как в экселе сделать формулу с условиями Как в экселе сделать формулу с условиями Как в экселе сделать формулу с условиями Как в экселе сделать формулу с условиями Как в экселе сделать формулу с условиями Как в экселе сделать формулу с условиями

    ШОКИРУЮЩИЕ НОВОСТИ