Skip to content

Instantly share code, notes, and snippets.

@Exact1990
Created January 22, 2018 09:17
Show Gist options
  • Select an option

  • Save Exact1990/86abd7549a65e5b986492471adb9730d to your computer and use it in GitHub Desktop.

Select an option

Save Exact1990/86abd7549a65e5b986492471adb9730d to your computer and use it in GitHub Desktop.
В общем, если генерить её вот так:
formula = '= ИНДЕКС({"";"сто ";"двести ";"триста ";"четыреста ";"пятьсот ";"шестьсот ";"семьсот ";"восемьсот ";"девятьсот "};ОСТАТ(ОТБР(' + row_link + '/10^8);10)+1)&ВЫБОР(ОСТАТ(ОТБР(' + row_link + '/10^7);10)+1;"";ИНДЕКС({"десять ";"одиннадцать ";"двенадцать ";"тринадцать ";"четырнадцать ";"пятнадцать ";"шестнадцать ";"семнадцать ";"восемнадцать ";"девятнадцать "};ОСТАТ(ОТБР(' + row_link + '/10^6);10)+1);"двадцать ";"тридцать ";"сорок ";"пятьдесят ";"шестьдесят ";"семьдесят ";"восемьдесят ";"девяносто ")&ЕСЛИ(ОСТАТ(ОТБР(' + row_link + '/10^7);10)<>1;ИНДЕКС({"";"один ";"два ";"три ";"четыре ";"пять ";"шесть ";"семь ";"восемь ";"девять "};ОСТАТ(ОТБР(' + row_link + '/10^6);10)+1);"")&ЕСЛИ(ОСТАТ(ОТБР(' + row_link + '/10^6);1000);"миллион"&ЕСЛИ(ОСТАТ(ОТБР(' + row_link + '/10^7);10)=1;"ов ";ВПР(ОСТАТ(ОТБР(' + row_link + '/10^6);10);{0;"ов ":1;" ":2;"а ":5;"ов "};2));"")&ИНДЕКС({"";"сто ";"двести ";"триста ";"четыреста ";"пятьсот ";"шестьсот ";"семьсот ";"восемьсот ";"девятьсот "};ОСТАТ(ОТБР(' + row_link + '/10^5);10)+1)&ВЫБОР(ОСТАТ(ОТБР(' + row_link + '/10^4);10)+1;"";ИНДЕКС({"десять ";"одиннадцать ";"двенадцать ";"тринадцать ";"четырнадцать ";"пятнадцать ";"шестнадцать ";"семнадцать ";"восемнадцать ";"девятнадцать "};ОСТАТ(ОТБР(' + row_link + '/1000);10)+1);"двадцать ";"тридцать ";"сорок ";"пятьдесят ";"шестьдесят ";"семьдесят ";"восемьдесят ";"девяносто ")&ЕСЛИ(ОСТАТ(ОТБР(' + row_link + '/10^4);10)<>1;ИНДЕКС({"";"одна ";"две ";"три ";"четыре ";"пять ";"шесть ";"семь ";"восемь ";"девять "};ОСТАТ(ОТБР(' + row_link + '/1000);10)+1);"")&ЕСЛИ(ОСТАТ(ОТБР(' + row_link + '/1000);1000);"тысяч"&ЕСЛИ(ОСТАТ(ОТБР(' + row_link + '/10^4);10)=1;" ";ВПР(ОСТАТ(ОТБР(' + row_link + '/1000);10);{0;" ":1;"а ":2;"и ":5;" "};2));"")&ИНДЕКС({"";"сто ";"двести ";"триста ";"четыреста ";"пятьсот ";"шестьсот ";"семьсот ";"восемьсот ";"девятьсот "};ОСТАТ(ОТБР(' + row_link + '/100);10)+1)&ВЫБОР(ОСТАТ(ОТБР(' + row_link + '/10);10)+1;"";ИНДЕКС({"десять ";"одиннадцать ";"двенадцать ";"тринадцать ";"четырнадцать ";"пятнадцать ";"шестнадцать ";"семнадцать ";"восемнадцать ";"девятнадцать "};ОСТАТ(ОТБР(' + row_link + ');10)+1);"двадцать ";"тридцать ";"сорок ";"пятьдесят ";"шестьдесят ";"семьдесят ";"восемьдесят ";"девяносто ")&ЕСЛИ(ОТБР(' + row_link + ')=0;"ноль ";ЕСЛИ(ОСТАТ(ОТБР(' + row_link + '/10);10)<>1;ИНДЕКС({"";"один ";"два ";"три ";"четыре ";"пять ";"шесть ";"семь ";"восемь ";"девять "};ОСТАТ(ОТБР(' + row_link + ');10)+1);""))&"рубл"&ЕСЛИ(ОСТАТ(ОТБР(' + row_link + '/10);10)=1;"ей";ВПР(ОСТАТ(ОТБР(' + row_link + ');10);{0;"ей":1;"ь":2;"я":5;"ей"};2))&ТЕКСТ(ОТБР((' + row_link + '-ОТБР(' + row_link + ')+0,00001)*100);" 00\ коп.;;")'
то на выходе в libreoffice дает ошибку, а форму выглядит так:
=индекс({""|"сто "|"двести "|"триста "|"четыреста "|"пятьсот "|"шестьсот "|"семьсот "|"восемьсот "|"девятьсот "}|остат(отбр(I442/10^8)|10)+1)&выбор(остат(отбр(I442/10^7)|10)+1|""|индекс({"десять "|"одиннадцать "|"двенадцать "|"тринадцать "|"четырнадцать "|"пятнадцать "|"шестнадцать "|"семнадцать "|"восемнадцать "|"девятнадцать "}|остат(отбр(I442/10^6)|10)+1)|"двадцать "|"тридцать "|"сорок "|"пятьдесят "|"шестьдесят "|"семьдесят "|"восемьдесят "|"девяносто ")&если(остат(отбр(I442/10^7)|10)<>1|индекс({""|"один "|"два "|"три "|"четыре "|"пять "|"шесть "|"семь "|"восемь "|"девять "}|остат(отбр(I442/10^6)|10)+1)|"")&если(остат(отбр(I442/10^6)|1000)|"миллион"&если(остат(отбр(I442/10^7)|10)=1|"ов "|впр(остат(отбр(I442/10^6)|10)|{0|"ов ":1|" ":2|"а ":5|"ов "})))
а в excel при открытии вообще дает ошибку и при согласии на восстановлении затирает формулу
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment