TOP

Somma, numeri, numero scritto in ucraino

Descrizione

Molto spesso capita che abbiamo bisogno di visualizzare numeri scritti in ucraino in Excel . Ad esempio, visualizza il numero di pagine di un documento per iscritto: un numero "27" COME "Двадцять сім" .

Inoltre, a fini contabili, il costo di una transazione commerciale deve essere scritto in parole. Ad esempio, l'importo 10 568,23 mostrare per iscritto come "Десять тисяч п'ятсот шістдесят вісім грн. 23 коп." , cioè necessario somma in lingua ucraina , ma Excel non ha una funzione standard per tali scopi.


VBA codice per la funzione SUMINWORDS

Di seguito troverai una funzione già pronta su VBA, che traduce qualsiasi numero nella sua rappresentazione testuale in ucraino, cioè in numero per iscritto . Questa funzionalità deve essere aggiunta al tuo libro prima dell'uso.

Per questo:

  1. Premi ALT+F11 per aprire l'editor Visual Basic
  2. Aggiungi un nuovo modulo vuoto attraverso il menu Insert - Module
  3. Copia e incolla il testo di questa funzione lì:
  1. Function SUMINWORDS(n As Double, curr As Variant, kop As VariantAs String  
  2.  ' moonexcel.com.ua   
  3.  Dim Nums1, Nums2, Nums3, Nums4 As Variant  
  4.    
  5.  Nums0 = Array("""одна ""дві ""три ""чотири ""п'ять ""шість ""сім ""вісім ""дев'ять ")  
  6.  Nums1 = Array("""один ""два ""три ""чотири ""п'ять ""шість ""сім ""вісім ""дев'ять ")  
  7.  Nums2 = Array("""десять ""двадцять ""тридцять ""сорок ""п'ятдесят ""шістдесят ""сімдесят ", _  
  8.                         "вісімдесят ""дев'яносто ")  
  9.  Nums3 = Array("""сто ""двісті ""триста ""чотириста ""п'ятсот ""шістсот ""сімсот ", _  
  10.                         "вісімсот ""дев'ятсот ")  
  11.  Nums4 = Array("""одна ""дві ""три ""чотири ""п'ять ""шість ""сім ""вісім ""дев'ять ")  
  12.  Nums5 = Array("десять ""одинадцять ""дванадцять ""тринадцять ""чотирнадцять ", _  
  13.                         "п'ятнадцять ""шістнадцять ""сімнадцять ""вісімнадцять ""дев'ятнадцять ")  
  14.     
  15.  If n < 1 Then  
  16.    SUMINWORDS = "Нуль " & curr & " " & Round((n - Fix(n)) * 100) & " " & kop  
  17.      
  18. If curr = "" Then  
  19.    SUMINWORDS = "Нуль"  
  20. End If  
  21.         
  22.    Exit Function  
  23.  End If  
  24.  ' dividiamo il numero in cifre utilizzando la funzione ausiliaria Classe   
  25.  ed     = Class(n, 1)  
  26.  dec    = Class(n, 2)  
  27.  sot    = Class(n, 3)  
  28.  tys    = Class(n, 4)  
  29.  dectys = Class(n, 5)  
  30.  sottys = Class(n, 6)  
  31.  mil    = Class(n, 7)  
  32.  decmil = Class(n, 8)  
  33.  sotmil = Class(n, 9)  
  34.  bil    = Class(n, 10)  
  35.      
  36.  ' controllando miliardi   
  37.  Select Case bil  
  38.     Case 1  
  39.       bil_txt = Nums1(bil) & "мільярд "  
  40.     Case 2 To 4  
  41.       bil_txt = Nums1(bil) & "мільярди "  
  42.     Case 5 To 9  
  43.       bil_txt = Nums1(bil) & "мільярдів "  
  44.  End Select  
  45.      
  46.  ' controllando milioni   
  47.  Select Case sotmil  
  48.    Case 1 To 9  
  49.      sotmil_txt = Nums3(sotmil)  
  50.  End Select  
  51.     
  52.  Select Case decmil  
  53.    Case 1  
  54.      mil_txt = Nums5(mil) & "мільйонів "  
  55.      GoTo www  
  56.    Case 2 To 9  
  57.      decmil_txt = Nums2(decmil)  
  58.  End Select  
  59.    
  60.  Select Case mil  
  61.    Case 0  
  62.      If decmil > 0 Then mil_txt = Nums4(mil) & "мільйонів "  
  63.    Case 1  
  64.      mil_txt = Nums1(mil) & "мільйон "  
  65.    Case 2, 3, 4  
  66.      mil_txt = Nums1(mil) & "мільйона "  
  67.    Case 5 To 9  
  68.      mil_txt = Nums1(mil) & "мільйонів "  
  69.  End Select  
  70.    
  71.  If decmil = 0 And mil = 0 And sotmil <> 0 Then sotmil_txt = sotmil_txt & "мільйонів "  
  72.    
  73. www:  
  74.  sottys_txt = Nums3(sottys)  
  75.    
  76.  ' ne controlliamo migliaia   
  77.  Select Case dectys  
  78.    Case 1  
  79.      tys_txt = Nums5(tys) & "тисяч "  
  80.      GoTo eee  
  81.    Case 2 To 9  
  82.      dectys_txt = Nums2(dectys)  
  83.  End Select  
  84.    
  85.  Select Case tys  
  86.    Case 0  
  87.      If dectys > 0 Then tys_txt = Nums4(tys) & "тисяч "  
  88.    Case 1  
  89.      tys_txt = Nums4(tys) & "тисячa "  
  90.    Case 2, 3, 4  
  91.      tys_txt = Nums4(tys) & "тисячі "  
  92.    Case 5 To 9  
  93.      tys_txt = Nums4(tys) & "тисяч "  
  94.  End Select  
  95.    
  96.  If dectys = 0 And tys = 0 And sottys <> 0 Then sottys_txt = sottys_txt & " тисяч "  
  97.    
  98. eee:  
  99.  sot_txt = Nums3(sot)  
  100.    
  101.  ' controlliamo dozzine   
  102.  Select Case dec  
  103.    Case 1  
  104.      ed_txt = Nums5(ed)  
  105.      GoTo rrr  
  106.    Case 2 To 9  
  107.      dec_txt = Nums2(dec)  
  108.  End Select  
  109.     
  110.  ed_txt = Nums0(ed)  
  111.   
  112. rrr:  
  113.  ' costituiscono la riga finale   
  114.  SUMINWORDS = bil_txt & sotmil_txt & decmil_txt & mil_txt & sottys_txt & dectys_txt _  
  115.  & tys_txt & sot_txt & dec_txt & ed_txt & curr & " " & Round((n - Fix(n)) * 100) & " " & kop  
  116.   
  117.  If curr = "" Then  
  118.    SUMINWORDS = bil_txt & sotmil_txt & decmil_txt & mil_txt & sottys_txt & dectys_txt _  
  119.  & tys_txt & sot_txt & dec_txt & ed_txt  
  120.  End If  
  121.    
  122.  SUMINWORDS = UCase(Mid(SUMINWORDS, 1, 1)) + Mid(SUMINWORDS, 2)  
  123.    
  124. End Function  
  125.     
  126.  ' funzione ausiliaria per la selezione dal numero di cifre   
  127. Private Function Class(M, I)  
  128.   Class = Int(Int(M - (10 ^ I) * Int(M / (10 ^ I))) / 10 ^ (I - 1))  
  129. End Function  

Salvare il file e tornare a Excel.

Utilizzando la funzione

Ora puoi inserire la funzione creata in qualsiasi cella del foglio di questo libro nel solito modo, tramite la procedura guidata della funzione (pulsante nella barra della formula, categoria Definito dall'utente (User defined) oppure semplicemente digitandolo manualmente nella cella e specificando la cella con la somma come argomento. Inoltre, nei parametri della funzione, puoi specificare il nome della valuta (grivna, dollaro, euro, ecc.) e il nome dei centesimi (penny, centesimi, ecc.):

=SUMINWORDS(testo; valuta; centinaia)

Se nel parametro "valuta" inserire virgolette doppie vuote ( "" ), l'importo verrà visualizzato nel suo complesso numero per iscritto :

Articoli sull'argomento: