Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Office (Word, Excel, Outlook и т.д.) (http://forum.oszone.net/forumdisplay.php?f=115)
-   -   Объединить в формуле русский и украинский язык. (http://forum.oszone.net/showthread.php?t=345645)

kill-kit 25-06-2020 05:50 2926192

Объединить в формуле русский и украинский язык.
 
Эта формула переводит буквенное значение в цифровое.
Код:

=СУММПРОИЗВ(ВПР(Т(ИНДЕКС(+ПСТР(ПРОПИСН(СЖПРОБЕЛЫ(A1));СТРОКА(A$1:ИНДЕКС(A:A;ДЛСТР(СЖПРОБЕЛЫ(A1))));1);));{"а";1:"б";2:"в";3:"г";4:"д";5:"е";6:"ё";7:"ж";8:"з";9:"и";1:"й";2:"к";3:"л";4:"м";5:"н";6:"о";7:"п";8:"р";9:"с";1:"т";2:"у";3:"ф";4:"х";5:"ц";6:"ч";7:"ш";8:"щ";9:"ъ";1:"ы";2:"ь";3:"э";4:"ю";5:"я";6};2;);10^(ДЛСТР(СЖПРОБЕЛЫ(A1))-СТРОКА(A$1:ИНДЕКС(A:A;ДЛСТР(СЖПРОБЕЛЫ(A1))))))
Можно ли в эту формулу вставить украинский язык?

megaloman 25-06-2020 09:56 2926201

kill-kit, А по какому принципу? Если тупо, то, например, Вашу формулу можно дополнить (взял её фрагмент):
было "ю";5:"я";6}
а можно, например, сделать так: "ю";5:"я";6:"ї";7:"і";8}
или эдак: "ю";5:"я";6:"ї";3:"і";9}
Определитесь с принципом, а буквам любого алфавита можно сопоставить в этой формуле любую цифру.
Кстати - максимальная строка, которую формула способна обработать - 15 символов
И, кстати, пробелы в строке для Вашей формулы недопустимы. А они возможны?

kill-kit 25-06-2020 20:05 2926275

=СУММПРОИЗВ(10^(ДЛСТР(I2)-СТРОКА(ДВССЫЛ("1:"&ДЛСТР(I2))))*(ОСТАТ(ПОИСК(ПСТР(I2;СТРОКА(ДВССЫЛ("1:"&ДЛСТР(I2)));1);"абвгдеёжзийк лмнопрстуфхцчшщъыьэюя")-1;9)+1))
Есть еще такая можно к нее добавить украинский))
В ячейку вписывается слово либо на украинском или русском и оно должен перевестись в цифровой формат.

megaloman 25-06-2020 20:20 2926276

Цитата:

Цитата kill-kit
в цифровой формат »

Не понимаю, зачем такое нужно, это какое-то извращенное преобразование. Возможен вот такой монстр - он даже удобнее, там фигурирует адрес ячейки только в одном месте формулы. И добавить туда можно буквы любого алфавита и длина строки не ограничена 15 символами. И можно, например, кириллицу заменить латиницей.

Код:

=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(СТРОЧН(A1);"а";1);"б";2);"в";3);"г";4);"д";5);"е";6);"ё";7);"ж";8);"з";9);"и";1);"й";2);"к";3);"л";4);"м";5);"н";6);"о";7);"п";8);"р";9);"с";1);"т";2);"у";3);"ф";4);"х";5);"ц";6);"ч";7);"ш";8);"щ";9);"ь";1);"ы";2);"ъ";3);"э";4);"ю";5);"я";6)

kill-kit 26-06-2020 06:32 2926325

Точно монстр))
Это рабочая формула, или заготовка под нужный алфавит?
А почему именно 15 символами ограничена формула, мне 15 хватало, хотя я об этом не знал, ну спорить не буду пусть лучше будут больше.
В A1 мы вносим слово?

megaloman 26-06-2020 15:59 2926380

kill-kit, Это рабочая формула. Можно использовать как заготовку для пополнения, например, украинскими буквами.
15 цифр - это длина значащей части числовой переменной (по крайней мере для 32-разрядного Excel)
Строку
"абвгдеёжзийклмнопрстуфхцчшщьыъэюя"
Ваша формула преобразует в
123456789123457000000000000000000
а приведенная мной формула в
123456789123456789123456789123456
Это связано с тем, что Ваша формула работает с арифметическими вычислениями, а приведенная мной - с текстовыми заменами.
В ячейке A1 (или иной указанной) текст, а можно вместо адреса вставить литерал, например
"раз два три четыре пять"

kill-kit 26-06-2020 19:42 2926393

Вложений: 1
Соглашусь если я туплю, но не работает!

megaloman 26-06-2020 20:00 2926395

Вложений: 1
kill-kit, Работает. Когда делался копипаст - затесался несколько раз лишний пробел. Виноват, поленился использовать тег Code. Ваша первая формула и монстр дают одинаковый результат, а Ваша вторая формула - другой. Подправил пост.

kill-kit 26-06-2020 20:29 2926398

Я правильно понял, что формула не может содержать в себе сразу украинске и русские буквы.
Нужно две формулы русская и украинская?

megaloman 27-06-2020 09:14 2926434

kill-kit,
Цитата:

Цитата megaloman
А по какому принципу? »

Может. Определите, какие цифры должны соответствовать буквам украинского алфавита ґ, є, і и ї. Возможно, Вам надо учесть апостроф.
Украинский от русского отличается 4 символами. Если общим символам украинского и русского алфавита Вы присваиваете одинаковые цифры - никаких проблем не возникает. Ежели Вы хотите иметь для каждого алфавита свою нумерацию, то, наверное, можно построить формулу на основе ЕСЛИ и одной из вышеприведенных, естественно, автоматически определить, какому алфавиту принадлежит слово вася не представляется возможным.

kill-kit 27-06-2020 09:42 2926438

Вложений: 1
Мне бы хотелось чтоб она автоматом считала оба языка.
Я понял что Вы требуете, вот картинка.

megaloman 27-06-2020 12:08 2926453

Вложений: 1
kill-kit, Дело не в том, что я не способен найти в инете алфавит, я не понимаю, как одинаковые символы русского и украинского алфавитов Вы сопоставляете с цифрами
Вот русский и украинский алфавиты, их ASCII коды и их перекодировка в цифры в соответствии с Вашей постановкой
Код:

                        ASCII                        ASCII
1        1        а        224        1        а        224
2        2        б        225        2        б        225
3        3        в        226        3        в        226
4        4        г        227        4        г        227
5        5        д        228        5        ґ        180
6        6        е        229        6        д        228
7        7        ё        184        7        е        229
8        8        ж        230        8        є        186
9        9        з        231        9        ж        230
10        1        и        232        1        з        231
11        2        й        233        2        и        232
12        3        к        234        3        і        179
13        4        л        235        4        ї        191
14        5        м        236        5        й        233
15        6        н        237        6        к        234
16        7        о        238        7        л        235
17        8        п        239        8        м        236
18        9        р        240        9        н        237
19        1        с        241        1        о        238
20        2        т        242        2        п        239
21        3        у        243        3        р        240
22        4        ф        244        4        с        241
23        5        х        245        5        т        242
24        6        ц        246        6        у        243
25        7        ч        247        7        ф        244
26        8        ш        248        8        х        245
27        9        щ        249        9        ц        246
28        1        ъ        250        1        ч        247
29        2        ы        251        2        ш        248
30        3        ь        252        3        щ        249
31        4        э        253        4        ь        252
32        5        ю        254        5        ю        254
33        6        я        255        6        я        255
        7        ґ        180        7        ё        184
        8        є        186        8        ъ        250
        9        і        179        9        ы        251
        1        ї        191        1        э        253

Очевидно, что одинаковые буквы в двух алфавитах имеют одинаковые ASCII коды, но соответствуют разным цифрам в Вашей постановке. Если за основу берём русский алфавит и добавляем к нему 4 украинских символа, то:
Код:

=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(СТРОЧН(B2);"а";1);"б";2);"в";3);"г";4);"д";5);"е";6);"ё";7);"ж";8);"з";9);"и";1);"й";2);"к";3);"л";4);"м";5);"н";6);"о";7);"п";8);"р";9);"с";1);"т";2);"у";3);"ф";4);"х";5);"ц";6);"ч";7);"ш";8);"щ";9);"ъ";1);"ы";2);"ь";3);"э";4);"ю";5);"я";6);"ґ";7);"є";8);"і";9);"ї";1)
При этом київ=3113, підрахуй=89591532
Если за основу берём украинский алфавит и добавляем к нему 4 русских символа, то:
Код:

=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(СТРОЧН(B5);"а";1);"б";2);"в";3);"г";4);"д";6);"е";7);"ё";7);"ж";9);"з";1);"и";2);"й";5);"к";6);"л";7);"м";8);"н";9);"о";1);"п";2);"р";3);"с";4);"т";5);"у";6);"ф";7);"х";8);"ц";9);"ч";1);"ш";2);"щ";3);"ъ";8);"ы";9);"ь";4);"э";1);"ю";5);"я";6);"ґ";5);"є";8);"і";3);"ї";4)
При этом київ=6243, підрахуй=23631865
У Вас, ИМХО, очень странная постановка. Я бы понял замену символов их кодами, а не цифрами - по крайней мере, каждая буква однозначно была бы определена.

kill-kit 28-06-2020 07:30 2926531

Киев-3163 и Київ - 6243
Никита - 613121 и Нікіта - 936351
Так должно получиться. Я думал сделать разные формулы, но потом передумала много пересечений формул. Решил что можно одну формулу чтоб была совмещена.

kill-kit 04-07-2020 19:15 2927217

Я извиняюсь, либо я что то не понял, либо у вас не было времени?
Надо подкорректировать, код не тот.

megaloman 04-07-2020 21:09 2927236

Вложений: 1
kill-kit, я думал, у Вас проблема решена. Вы не озвучили возможный путь решения - знание Вами двух языков не в счет - алгоритмизируйте это знание для построения формулы.Повторяюсь
Цитата:

Цитата megaloman
автоматически определить, какому алфавиту принадлежит слово вася не представляется возможным. »

Вася, Киев, Никита - какому алфавиту принадлежат слова, сформулируйте признак для автоматического определения. Выдайте тот критерий, по какому Вы определяете принадлежность слова тому или иному алфавиту, когда буквы совершенно одинаковы по написанию (и, гораздо жестче - по кодировке)
Можно объединить две формулы с русским и украинским алфавитом через если, как, например, сделано на сайте.
=ЕСЛИ(какой-то признак; формула для русского; формула для украинского)
В приложенной таблице если B2=1, то укр язык, иначе русский.

kill-kit 05-07-2020 05:16 2927285

Думаю, это сложно в самом деле. Пусть лучше будет две формулы и все, ни чего страшного напишут ручками в другой ячейке.
Спасибо!

v79italya 16-07-2020 18:35 2928408

Вложений: 1
Цитата:

Цитата kill-kit
в другой ячейке »

Не понятно что именно нужно, но вариант закину.
В ячейке С1 формула на русском, при протягивании вправо на один столбец будет на украинском


Время: 17:39.

Время: 17:39.
© OSzone.net 2001-