LA CAMPANA

C'è chi ha letto questa notizia prima di te.
Iscriviti per ricevere gli ultimi articoli.
E-mail
Nome
Cognome
Come vuoi leggere La Campana?
Niente spam

Se hai dei dubbi su come si scrive qualcosa in inglese o russo, usa il nostro traduttore per i numeri. Per effettuare una traduzione, inserire il numero richiesto sotto forma di numeri e il programma calcolerà la sua forma scritta.

Al momento, la limitazione del traduttore è un limite di 18 posizioni decimali (per valori interi) e 18 posizioni decimali (per la traduzione di valori contenenti una parte frazionaria).

Numero:

Come puoi vedere sopra, vengono fornite diverse ortografie inglesi per il numero da tradurre. Con questi, puoi distinguere tra inglese americano (AmE) e inglese britannico (BrE). Per ciascuno di essi, a sua volta, possono essere previste anche diverse opzioni ortografiche, quale utilizzare nel testo dipende dal contesto della frase.

Questo programma è ugualmente facile da gestire con la traduzione di numeri in testo, come per di lingua inglese e per il russo. Quelli. se hai bisogno di scrivere un numero in parole in russo, inseriscilo in formato numerico e fai clic sul pulsante "Traduci".

designazioni

Quando traduce in russo, il traduttore tiene conto dei possibili cambiamenti di genere per un determinato numero, che sono indicati dai seguenti pittogrammi:
- femminile, - maschile, - neutro.

Oltre ai numeri, il nostro programma può anche scrivere varie somme di denaro in parole. In questo caso, il trasferimento viene effettuato immediatamente in tre valute diverse: rubli, dollari e sterline.

Il pulsante viene utilizzato per commutare tra le modalità "Numero in parole" e "Importo in parole".

Prima di tutto, ci concentriamo sulle persone che imparano l'inglese. lingua, ma se questo traduttore è utile a qualcun altro (ad esempio, durante la compilazione di documenti aziendali), saremo molto felici.

Quando si visualizzano vari report, è spesso necessario convertire un valore numerico in una stringa in parole. In 1C, questo può essere risolto in modo molto semplice: per questo viene fornita la funzione NumberWords ().

Quando si forma un numero in parole, è possibile visualizzare accanto all'oggetto del calcolo di questo numero nel genere e nel caso richiesti. Materia di calcolo- questo è ciò che misura il numero convertito, ad esempio denaro, scatole, vagoni, televisori, ecc.

  • Senza l'argomento del calcolo:
    • Ventidue;
    • Trecentottantaquattro.
  • Con il tema del calcolo:
    • Trentotto dobloni
    • Dodici navi;
    • Due case.

Esempi di

Innanzitutto, diamo esempi di trasformazione per scoprire le capacità di 1C:

// ***** Visualizza i numeri: ***** Numero in parole (9876.54); // Novemilaottocentosettantasei 54 Numero in parole (1234.56, "Л = ru_RU; ДП = TRUE", "intero, intero, intero, w, centesimo, centesimo, centesimo, w, 2"); // Milleduecentotrentaquattro virgola cinquantasei centesimi Numero in parole (7432, "Л = ru_RU; NP = False", ", 0"); // Settemilaquattrocentotrentadue // ***** Prelievo di fondi: ***** Numero in parole (9845.11, "Л = ru_RU",); // Novemilaottocentoquarantacinque rubli 11 copechi Numero in parole (2845.11, "L = ru_RU; DP = True", "rublo, rublo, rubli, m, copeco, copeco, copeco, w, 2"); // Duemilaottocentoquarantacinque rubli undici copechi Numero in parole (555.16, "Л = ru_RU; ДП = True", "dollaro, dollaro, dollari, m, cent, cent, cent, m, 2"); // Cinquecentocinquantacinque dollari sedici centesimi Numero in parole (453.23, "Л = ru_RU; DP = True", "euro, euro, euro, m, cent, cent, cent, m, 2"); // Quattrocentocinquantatre euro ventitre cent Numero in parole (812.44, "Л = en_US; ДП = True", "dollaro, dollari, cent, cent, 2"); // Ottocentododici dollari quarantaquattro centesimi Numero in lettere (3945.76, "Л = en_US; ДП = True", "euro, euros, cent, cents, 2"); // Tremilanovecentoquarantacinque euro settantasei centesimi // ***** Puoi convertire non solo unità monetarie: ***** Numero in parole (535, "Л = ru_RU", "scatola, scatole, scatole, w, w, 0"); // Cinquecentotrentacinque scatole Numero in parole (342, "Л = ru_RU", "televisore, televisore, televisori, m, m, 0"); // Trecentoquarantadue TV

Descrizione del lavoro con la funzione

Come abbiamo scoperto, la funzione viene utilizzata per ottenere il numero in parole

Numero in parole (< Число >, < Stringa di formato>, < Voce ParametriCalcoli>)

La funzione restituisce un valore stringa. I seguenti sono passati come parametri di input:

  • Numero è il valore da convertire;
  • FormatString - opzioni di formattazione:
    • L - Codice di localizzazione (ad esempio, u_RU - Russo; en_US - Inglese, de_DE - Tedesco). Le impostazioni del sistema operativo vengono utilizzate per impostazione predefinita.
    • NP - Visualizza il nome del soggetto del calcolo, per impostazione predefinita - Vero.
    • ND - Visualizza il nome delle parti decimali dell'oggetto del calcolo, per impostazione predefinita - Vero.
    • ДП - Visualizza la parte frazionaria in parole/numeri, per impostazione predefinita - Falso.
    • AI - Mostra unione e. Analizzato solo per la localizzazione in inglese. Valori possibili: "Non usare", "Usa".
  • CalculusObjectParameters - elenco separato da virgole dei parametri dell'oggetto calcolo. Il formato dipende dalla localizzazione.

Per la lingua russa, i parametri del calcolo hanno la forma "rublo, rublo, rubli, m, kopeck, kopeck, kopecks, w, 2", dove:

  • rublo - nominativo singolare;
  • rublo - genitivo singolare;
    rubli - genitivo plurale;
    m - maschile (w - femminile, s - neutro);
    "Kopeck, kopeck, kopeck, zh" - parte frazionaria, simile all'oggetto del calcolo (potrebbe essere assente);
    "2" - il numero di cifre della parte frazionaria (potrebbe essere assente, il valore predefinito è 2).

Utilizzo in soluzioni standard

Nelle configurazioni integrate, in un modulo comune LavoroCorsiValuta c'è una funzione

GeneraSommaParola(Numero importo, Valuta, Preleva ImportoNoCopecks= falso)

La funzione viene utilizzata per convertire gli importi in valuta in una stringa in parole.

Hai ancora domande?
Chiedi nei commenti all'articolo.

È un compito molto comune scrivere numeri in parole in Excel. Non esiste ancora una funzione integrata in Excel, quindi possiamo creare una funzione definita dall'utente che sostituirà numeri, numeri con testo.

Di norma, ciò è richiesto nel commercio, nella contabilità e in altre aree in cui vengono effettuati insediamenti con in contanti... Di solito è necessario trasferire l'importo in rubli e copechi a parole, come nell'immagine (primo esempio).

Diciamo che facciamo alcuni calcoli nella tabella e otteniamo l'importo totale in rubli 1526,23

Abbiamo bisogno di registrare questa cifra in rubli ed è desiderabile indicare lo stesso e un centesimo. Per fare ciò, creeremo una speciale funzione universale definita dall'utente che assomiglierà a questa

Propis (Importo; Denaro; lang; Prec)

Denaro: il tipo di valuta è indicato qui, è possibile specificare rubli, dollari ed euro ("RUB", "USD", "EUR") - la valuta deve essere indicata tra virgolette.

lang è la lingua in cui si desidera prelevare l'importo, sono disponibili due lingue: inglese e russo ("EN", "RU") - indichiamo anche tra virgolette

Prec - mostra (1) o non mostra (0) parte frazionaria

Quindi, puoi scrivere l'importo in rubli, dollari o euro in parole in lettere russe o inglesi insieme alla parte frazionaria, mentre a seconda del numero verrà inserita la desinenza corretta, ad esempio 2 rubli, 8 rubli, 1 rublo , e così via.

Per creare una funzione personalizzata Propis, devi copiare il codice qui sotto, quindi fare clic su ALT + F11 per aprire VBA aggiungi un nuovo modulo vuoto tramite il menu Inserisci - Modulo e incolla lì il codice copiato

Macro di funzioni personalizzate per la somma in parole

Funzione Propis (Amount As String, Optional Money As String = "RUB", Optional lang As String = "RU", Optional Prec As Integer = 1) Dim intero As Double Amount = Sostituire (Amount, "-", Application.International ( xlDecimalSeparator)) Amount = Sostituisci (Amount, ".", Application.International (xlDecimalSeparator)) Amount = Sostituisci (Amount, ",", Application.International (xlDecimalSeparator)) Sum = WorksheetFunction.Round (CDbl (Amount), 2) Money = UCase (Denaro) lang = UCase (lang) intero = Int (Somma) fraq = Formato (Round ((Somma - intero) * 100), "00") Seleziona Classe caso (intero, 1) + Classe (intero, 2) * 10 Caso 1, 21, 31, 41, 51, 61, 71, 81, 91 w_rus_r = "rublo" w_rus_d = "dollaro" w_rus_e = "euro" w_en_r = "rubli" w_en_d = "dollari" w_en_e = " euro "Caso 2, 3, 4, 22, 23, 24, 32, 33, 34, 42, 43, 44, 52, 53, 54, 62, 63, 64, 72, 73, 74, 82, 83, 84 , 92, 93, 94 w_rus_r = "rubli" w_rus_d = "dollari" w_rus_e = "euro" w_en_r = "rubli" w_en_d = "dollari" w_en_e = "euro" Caso Altro w_rus_r = "rubli "w_rus_d =" dollari "w_rus_e =" euro "w_en_r =" rubli "w_en_d =" dollari "w_en_e =" euro "End Select Case fraq Case 1, 21, 31, 41, 51, 61, 71, 81, 91 f_rus_r = "kopeck" f_rus_d = "cent" f_rus_e = "cent" f_rus_p = "centesimo" f_en_r = "kopecks" f_en_d = "cents" f_en_e = "cents" f_en_e = "cents" Caso 2, 3, 4, 22, 23, 24 , 32, 33, 34, 42, 43, 44, 52, 53, 54, 62, 63, 64, 72, 73, 74, 82, 83, 84, 92, 93, 94 f_rus_r = "kopecks" f_rus_d = " cents" f_rus_e = "cents" f_en_r = "kopecks" f_en_d = "cents" f_en_e = "cents" Case Else f_rus_r = "cents" f_rus_d = "cents" f_rus_e = "cents" f_en_r = "kopecks" f_en_d = "cents" " End Select If Prec = 0 Then fraq = "" f_rus_r = "" f_rus_d = "" f_rus_e = "" f_en_r = "" f_en_d = "" f_en_e = "" End If If lang = "RU" Then Select Case Money Case " RUB" Out = ScriptRus (intero) & "" & w_rus_r & "" & fraq & "" & f_rus_r Case "USD" Out = ScriptRus (intero) & "" & w_rus_d & "" & fraq & "" & f_rus_ d Case "EUR" Out = ScriptRus (intero) & "" & w_rus_e & "" & fraq & "" & f_rus_e End Seleziona End If lang = "EN" Quindi seleziona Case Money Case "RUB" Out = ScriptEng (intero) & "" & w_en_r & "" & fraq & "" & f_en_r Case "USD" Out = ScriptEng (intero) & "" & w_en_d & "" & fraq & "" & f_en_d Case "EUR" Out = ScriptEng (intero) & "" & w_en_e & "" & fraq & "" & f_en_e End Select End If Propis = WorksheetFunction.Trim (Out) End Function Private Function Class (m, i) Class = Int (Int (m - (10 ^ i) * Int (m / (10 ^ i))) / 10 ^ (i - 1)) End Function Private Function ScriptRus (n As Double) As String Dim Nums1, Nums2, Nums3, Nums4 As Variant Nums1 = Array ("", " uno", "due", "tre", "quattro", "cinque", "sei", "sette", "otto", "nove") Num2 = Array ("", "dieci", "venti" , "trenta", "quaranta", "cinquanta", "sessanta", "settanta", "ottanta", "novanta") Num3 = Array ("", "cento", "duecento", "trecento", "quattrocento", "cinquecento", "seicento", "settecento", "in settecento "," novecento ") Num4 = Matrice (" "," uno "," due "," tre "," quattro "," cinque "," sei "," sette "," otto "," nove ") Num5 = Array ("dieci", "undici", "dodici", "tredici", "quattordici", "quindici", "sedici", "diciassette", "diciotto", "diciannove") Se n = 0 Allora ScriptRus = "Zero" Exit Function End If ed = Classe (n, 1) dec = Classe (n, 2) sot = Classe (n, 3) tys = Classe (n, 4) dectys = Classe (n, 5) sottys = Classe (n, 6) mil = Classe (n, 7) decmil = Classe (n, 8) sotmil = Classe (n, 9) mlrd = Classe (n, 10) Se mlrd> 0 Quindi selezionare Caso mlrd Caso 1 mlrd_txt = Nums1 (mlrd) & "billion" Case 2, 3, 4 mlrd_txt = Nums1 (mlrd) & "billion" Case 5 To 20 mlrd_txt = Nums1 (mlrd) & "billion" End Select End If (sotmil + decmil + mil) > 0 Quindi sotmil_txt = Nums3 (sotmil) Select Case decmil Case 1 mil_txt = Nums5 (mil) & "million" GoTo www Case 2 To 9 decmil_txt = Nums2 (decmil) End Select Select Case mil Case 1 mil_txt = Nu ms1 (mil) & "million" Case 2, 3, 4 mil_txt = Nums1 (mil) & "million" Case 0.5 a 20 mil_txt = Nums1 (mil) & "million" Fine Seleziona Fine Se www: sottys_txt = Nums3 ( sottys) Seleziona Case dectys Case 1 tys_txt = Nums5 (tys) & "mille" GoTo eee Case 2 To 9 dectys_txt = Nums2 (dectys) Fine Seleziona Case tys Case 0 Se dectys> 0 Allora tys_txt = Nums4 (tys) & "mille "Case 1 tys_txt = Num4 (tys) &" mille "Caso 2, 3, 4 tys_txt = Num4 (tys) &" mille "Caso da 5 a 9 tys_txt = Num4 (tys) &" mille "Seleziona fine se dectys = 0 e tys = 0 e sott'acqua<>0 Quindi sottys_txt = sottys_txt & "mille" 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: ScriptRus = mlrd_txt & sotmil_txt & decmil_txt & mil_txt & sottys_txt & dectys_txt & tys_txt & sot_txt & dec_txt & ed_txt ScriptRus = UCase (Sinistra (ScriptRus, 1)) & LCase (Mid, ScriptRus), 2 Funzione Endus Funzione privata ScriptVal Double) Dim BigDenom As String, Temp As String Dim Count As Integer ReDim Place (9) As String Place (2) = "Mille" Place (3) = "Million" Place (4) = "Billion" Place (5) = "Trilioni" strAmount = Trim (Str (Int (Number))) Count = 1 Do While strAmount<>"" Temp = GetHundreds (Right (strAmount, 3)) If Temp<>"" Then BigDenom = Temp & Place (Count) & BigDenom If Len (strAmount)> 3 Then strAmount = Left (strAmount, Len (strAmount) - 3) Else strAmount = "" End If Count = Count + 1 Loop Select Case BigDenom Case "" BigDenom = "Zero" Case "One" BigDenom = "Uno" Case Else BigDenom = BigDenom & "" End Select ScriptEng = BigDenom End Function Funzione privata GetHundreds (ByVal MyNumber) Dim risultato As String If Val (MyNumber) = 0 Quindi esci dalla funzione MyNumber = Right ("000" & MyNumber, 3) Se Mid (MyNumber, 1, 1)<>"0" Quindi risultato = GetDigit (Mid (MyNumber, 1, 1)) & "Hundred" End If If Mid (MyNumber, 1, 1)<>"0" E (Medio (MyNumber, 2, 1)<>"0" o medio (MyNumber, 3, 1)<>"0") Then risultato = risultato & "E" End If If Mid (MyNumber, 2, 1)<>"0" Then risultato = risultato & GetTens (Mid (MyNumber, 2)) Else risultato = risultato & GetDigit (Mid (MyNumber, 3)) End If GetHundreds = risultato End Function Funzione privata GetTens (TensText) Dim result As String risultato = "" If Val (Left (TensText, 1)) = 1 Quindi selezionare Case Val (TensText) Caso 10: risultato = "Dieci" Caso 11: risultato = "Undici" Caso 12: risultato = "Dodici" Caso 13: risultato = "Tredici" Caso 14: risultato = "Quattordici" Caso 15: risultato = "Quindici" Caso 16: risultato = "Sedici" Caso 17: risultato = "Diciassette" Caso 18: risultato = "Diciotto" Caso 19: risultato = "Diciannove" "Case Else End Select Else Select Case Val (Left (TensText, 1)) Caso 2: risultato =" Venti "Caso 3: risultato =" Trenta "Caso 4: risultato =" Quaranta "Caso 5: risultato =" Cinquanta "Caso 6: risultato = "Sessanta" Caso 7: risultato = "Settanta" Caso 8: risultato = "Ottanta" Caso 9: risultato = "Ninety" Case Else End Seleziona risultato = risultato & GetDigit _ (Right (TensText, 1)) End If GetTens = risultato End Function Funzione privata GetDigit (D igit) Selezionare Case Val (Digit) Caso 1: GetDigit = "Uno" Caso 2: GetDigit = "Due" Caso 3: GetDigit = "Tre" Caso 4: GetDigit = "Quattro" Caso 5: GetDigit = "Cinque" Caso 6 : GetDigit = "Sei" Caso 7: GetDigit = "Sette" Caso 8: GetDigit = "Otto" Caso 9: GetDigit = "Nove" Case Else: GetDigit = "" Fine Seleziona Fine Funzione

Quindi, la funzione è stata creata per usarla, basta inserire la cella Propis con gli argomenti necessari, ad esempio, se dobbiamo scrivere l'importo in parole in rubli con copechi e in russo, la formula sarà simile a questa.

Propis (B2; "RUB"; "RU"; 1)

Numeri in parole con centesimi in lettere maiuscole o minuscole in Excel

Ecco il codice VBA per una funzione personalizzata. Visualizzare l'importo in parole con copechi e scegliere la prima lettera maiuscola o minuscola

Funzione RubRecord (Sum As Double, Optional No_kopecks As Boolean = False, _ Optional CopPrice As Boolean = False, Optional StartUpcript As Boolean = True) As String "Funzione per scrivere la somma in parole Dim ed, des, sot, ten, razr, dec Dim i As Integer, str As String, s As String Dim intPart As String, frPart As String Dim mlnEnd, tscEnd, razrEnd, rub, cop dec = Array ("", "uno", "due", "tre", "quattro "," cinque "," sei "," sette "," otto "," nove ") ed = Array (" "," uno "," due "," tre "," quattro "," cinque " ," sei "," sette "," otto "," nove ") dieci = Array (" dieci "," undici "," dodici "," tredici "," quattordici "," quindici "," sedici "," diciassette ", "diciotto", "diciannove") des = Array ("", "", "venti", "trenta", "quaranta", "cinquanta", "sessanta", "settanta", "ottanta", " novanta" ) sot = Array ("", "cento", "duecento", "trecento", "quattrocento", "cinquecento", "seicento", "settecento", "ottocento", "Novecento ") razr = Array (" "," mille "," milioni "," miliardi ") mlnEnd = Array (" s "," "," a "," a "," a "," s "," s "," ov "," ov "," ov ") tscEnd = Array (" "," a "," e "," e "," e "," "," "," "," "," ") razrEnd = Array (mlnEnd, mlnEnd, tscEnd," ") rub = Array (" rubli "," rublo "," rubli "," rubli "," rubli "," rubli "," rubli "," rubli " , "rubli", "rubli") cop = Array ("kopecks", "kopecks", "kopecks", "kopecks", "kopecks", "kopecks", "kopecks", "kopecks", "kopecks", "kopecks", " copechi ") If Amount> = 1000000000000 # Or Amount< 0 Then РубПропись = CVErr(xlErrValue): Exit Function "&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& If Round(Сумма, 2) >= 1 Allora intPart = Left $ (Formato (Amount, "000000000000.00"), 12) For i = da 0 a 3 s = Mid $ (intPart, i * 3 + 1, 3) If s<>"000" Allora str = str & sot (CInt (Left $ (s, 1))) If Mid $ (s, 2, 1) = "1" Allora str = str & ten (CInt (Right $ (s, 1 ))) Else str = str & des (CInt (Mid $ (s, 2, 1))) & IIf (i = 2, dec (CInt (Right $ (s, 1))), ed (CInt (Right $ (s, 1)))) End If On Error Resume Next str = str & IIf (Mid $ (s, 2, 1) = "1", razr (3 - i) & razrEnd (i) (0), _ razr (3 - i) & razrEnd (i) (CInt (Right $ (s, 1)))) On Error GoTo 0 End If Next i str = str & IIf (Mid $ (s, 2, 1) = "1 ", rub (0), strofina (CInt (Right $ (s, 1)))) End If RubPrepis = str" "" "" "" "" "" "" = Right $ (Formato (importo, "0.00" ), 2) If frPart = "00" Then frPart = "" Else If CopyPrint Then frPart = IIf (Left $ (frPart, 1) = "1", ten (CInt ( Right $ (frPart, 1))) & cop (0), _ des (CInt (Left $ (frPart, 1))) & dec (CInt (Right $ (frPart, 1))) & cop (CInt (Right $ (frPart, 1)))) Else frPart = IIf (Left $ (frPart, 1) = "1", frPart & "" & cop (0), frPart & "" & cop (CInt (Right $ (frPart, 1 )))) End If End If RubPartis = str & "" & frPart End If "" "" "" "" "" "" "" "" "" "RubRecord = str & frPart Se inizia con maiuscolo Allora Mid $ (RubRecord, 1, 1) = UCase (Mid $ (RubRecord, 1, 1))" Se inizia con maiuscolo Allora RubRecord = UCase (Sinistra (RubRecord , 1)) e Mid (RubPopis, 2) End Function

  • Senza copechi (1), con copechi (0)
  • Copecks in parole (1), in numero (0)
  • Inizia con le parole (0), lettere maiuscole (1)

Ecco come viene utilizzata la funzione


Nota

  • Questa funzione funzionerà con i numeri da 0 a 99 999 999
  • Prima di copiare il codice, cambia il layout della tastiera in russo (per una copia corretta del testo russo)
  • Il codice VBA deve essere incollato in tutti i file (cartelle di lavoro Excel) dove vuoi che funzioni
  • Dopo aver incollato il codice, è necessario salvare il file macro xlsm (in Excel, a partire dalla versione 2007)
  • La funzione può essere digitata manualmente, oppure, se si è dimenticato come è scritta, tramite la funzione guidata (pulsante fx nella barra della formula, categoria Definito dall'utente)

LA CAMPANA

C'è chi ha letto questa notizia prima di te.
Iscriviti per ricevere gli ultimi articoli.
E-mail
Nome
Cognome
Come vuoi leggere La Campana?
Niente spam