Страницы: 1
RSS
Разбить текст на отдельные символы и потом сделать КОДСИМВ для каждого
 
Есть некий текст в ячейке A1
К примеру - "Hello, World!!
Причем длина текста может быть варьироваться, от 10 до 60 символов"
Хочется брать этот текст и через КОДСИМВ кодировать его в формат Цифра1(ТОЧКА)ЦИФРА2(ТОЧКА) и т.д.

Т.е. текст "Hello, World!" должен через формула перекодироваться в текст - "72.101.108.108.111.44.32.119.111.114.108.100.33
"

Отдельную букву взять можно через ПСТР - понятно =ПСТР(A1;1;1) и т.д
Закодировать ее через КОДСИМВ
Длину текста можно взять через ДЛСТР
А вот как сделать так, чтобы формула выдала сразу закодированный текст как в примере отмечено зеленным.
Наверное через массив, но у меня не получается это сделать. Подскажите пожалуйста.
Изменено: seggi - 30.03.2021 07:29:30
Goedenavond!
 
как только 72 станет цифрой, так сразу все получится.
По вопросам из тем форума, личку не читаю.
 
Передать ПСТР в качестве второго аргумента массив. Так например СТРОКА(1:10). Но тут вопрос не в том  как разобрать, а как собрать.
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Цитата
Максим В. написал:
о тут вопрос не в том  как разобрать, а как собрать.
еще б понять зачем :-). А сложность сбора зависит от версии Excel.
По вопросам из тем форума, личку не читаю.
 
Зачем нужно - Брать путь нахождения файла через ИНФОРМ и передавать его на странице не в виде "С:\Users\Vasya", а в виде непонятных цифр. Распечатка из Excel  потом может быть всегда индифицирована, чтобы не  было вопросов, кто печатал.
Goedenavond!
 
Версия Excel?
По вопросам из тем форума, личку не читаю.
 
Цитата
seggi написал:
потом может быть всегда индифицирована, чтобы не  было вопросов, кто печатал
ну да, ведь надпись на странице просто С:\Users\Vasya никак не идентифицирует того, кто напечатал :)
Делайте тогда все это макросом, если боитесь, что функцию подменят. Потому что как бы Вы там не шифровались формулами - их обойти людям будет проще, чем макрос. Если есть доступ к просто С:\Users\Vasya, то и к Вашим символам доберутся.
Изменено: Дмитрий(The_Prist) Щербаков - 29.03.2021 11:13:35
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Так проще в подвале напечатать путь к файлу тогда уж. и подменить не просто и сделать не сложно.
По вопросам из тем форума, личку не читаю.
 
Тут защита не от своих, а от чужих.
Есть дилеры, которые торгуют и нашей продукцией, и иногда продукцией конкурентов.
Они имеют некие наши формулы для расчета в Excel и им запрещено передавать их клиентам, т.к. потом они могут быть переданы конкурентам.
Файлы передаются в защищенном виде и формулы нельзя увидеть.
Goedenavond!
 
Как вариант.
В ячейку B2 и протянуть вправо.
Код
=A2&"."&КОДСИМВ(ПСТР($A$1;СТОЛБЕЦ(A1);1))
 
Цитата
seggi написал:
Файлы передаются в защищенном виде и формулы нельзя увидеть
:D
продолжайте так думать дальше.
По сути вопроса: если собрались распространять и на другие ПК, то либо разбивать текст на отдельные ячейки, собирая их в одну единую другой формулой, либо отказаться от этой идеи, т.к. если будете использовать формулы новейших версий, то не факт, что такая же версия есть у других пользователей.
Т.е. можете сделать так:
Код
=ЕСЛИ(СТОЛБЕЦ(A1)>ДЛСТР($A$1);"";КОДСИМВ(ПСТР($A$1;СТОЛБЕЦ(A1);1)))
протягиваете вправо на столбцы.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Вспомнилось из старого баша
Скрытый текст

Взломать при желании все можно, а можно защитить от обычного копирования среднестатистическим позьзователем, чего в 99% из 100 вполне хватит.

Спасибо за помощь, буду значит разбивать по буквам и собирать
Goedenavond!
 
Цитата
seggi написал:
формулы нельзя увидеть
Это только то, что произошло в Вегасе, остается в Вегасе.
Все что попало в книгу Эксель - достать может любой интересующийся.
Вот горшок пустой, он предмет простой...
 
Цитата
seggi написал:
буду значит разбивать по буквам и собирать
Цитата
seggi написал:
от 10 до 60 символов
- 260 это предельная длина полного имени файла, при этом это ограничение уже снято, хотя Excel не рекомендуется кормить более 218.
то есть нужно не 10-60.
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
- 260 это предельная длина полного имени файла
Скорее всего нужная информация будет именно в первых 60 символах

С:\Users\Vasya\Papka1\Podpapka2\ ....\File.xlsx
Изменено: seggi - 29.03.2021 12:52:30
Goedenavond!
 
=SUBSTITUTE(TRIM(SUBSTITUTE(TEXT(SUM(CODE(MID(INFO("DIRECTORY");ROW(1:5);1))*1000^(5-ROW(1:5)));REPT("\ 000";5))&
TEXT(SUM(CODE(MID(INFO("DIRECTORY");ROW(1:5)+5;1))*1000^(5-ROW(1:5)));REPT("\ 000";5))&
TEXT(SUM(CODE(MID(INFO("DIRECTORY");ROW(1:5)+10;1))*1000^(5-ROW(1:5)));REPT("\ 000";5))&
TEXT(SUM(CODE(MID(INFO("DIRECTORY");ROW(1:5)+15;1))*1000^(5-ROW(1:5)));REPT("\ 000";5))&
TEXT(SUM(CODE(MID(INFO("DIRECTORY");ROW(1:5)+20;1))*1000^(5-ROW(1:5)));REPT("\ 000";5))&
TEXT(SUM(CODE(MID(INFO("DIRECTORY");ROW(1:5)+25;1))*1000^(5-ROW(1:5)));REPT("\ 000";5))&
TEXT(SUM(CODE(MID(INFO("DIRECTORY");ROW(1:5)+30;1))*1000^(5-ROW(1:5)));REPT("\ 000";5))&
TEXT(SUM(CODE(MID(INFO("DIRECTORY");ROW(1:5)+35;1))*1000^(5-ROW(1:5)));REPT("\ 000";5))&
TEXT(SUM(CODE(MID(INFO("DIRECTORY");ROW(1:5)+40;1))*1000^(5-ROW(1:5)));REPT("\ 000";5))&
TEXT(SUM(CODE(MID(INFO("DIRECTORY");ROW(1:5)+45;1))*1000^(5-ROW(1:5)));REPT("\ 000";5))&
TEXT(SUM(CODE(MID(INFO("DIRECTORY");ROW(1:5)+50;1))*1000^(5-ROW(1:5)));REPT("\ 000";5))&
TEXT(SUM(CODE(MID(INFO("DIRECTORY");ROW(1:5)+55;1))*1000^(5-ROW(1:5)));REPT("\ 000";5));" 0";" "));" ";".")
По вопросам из тем форума, личку не читаю.
 
Спасибо большое!
Goedenavond!
 
Не короче, но крорректнее
=SUBSTITUTE(TRIM(SUBSTITUTE(SUBSTITUTE(
TEXT(SUM(CODE(MID(INFO("DIRECTORY");{1;2;3;4;5};1))*1000^(5-{1;2;3;4;5}));REPT("\ 000";5))&
TEXT(SUMPRODUCT(IFERROR(CODE(MID(INFO("DIRECTORY");{1;2;3;4;5}+5;1))*1000^(5-{1;2;3;4;5});));REPT("\ 000";5))&
TEXT(SUMPRODUCT(IFERROR(CODE(MID(INFO("DIRECTORY");{1;2;3;4;5}+10;1))*1000^(5-{1;2;3;4;5});));REPT("\ 000";5))&
TEXT(SUMPRODUCT(IFERROR(CODE(MID(INFO("DIRECTORY");{1;2;3;4;5}+15;1))*1000^(5-{1;2;3;4;5});));REPT("\ 000";5))&
TEXT(SUMPRODUCT(IFERROR(CODE(MID(INFO("DIRECTORY");{1;2;3;4;5}+20;1))*1000^(5-{1;2;3;4;5});));REPT("\ 000";5))&
TEXT(SUMPRODUCT(IFERROR(CODE(MID(INFO("DIRECTORY");{1;2;3;4;5}+25;1))*1000^(5-{1;2;3;4;5});));REPT("\ 000";5))&
TEXT(SUMPRODUCT(IFERROR(CODE(MID(INFO("DIRECTORY");{1;2;3;4;5}+30;1))*1000^(5-{1;2;3;4;5});));REPT("\ 000";5))&
TEXT(SUMPRODUCT(IFERROR(CODE(MID(INFO("DIRECTORY");{1;2;3;4;5}+35;1))*1000^(5-{1;2;3;4;5});));REPT("\ 000";5))&
TEXT(SUMPRODUCT(IFERROR(CODE(MID(INFO("DIRECTORY");{1;2;3;4;5}+40;1))*1000^(5-{1;2;3;4;5});));REPT("\ 000";5))&
TEXT(SUMPRODUCT(IFERROR(CODE(MID(INFO("DIRECTORY");{1;2;3;4;5}+45;1))*1000^(5-{1;2;3;4;5});));REPT("\ 000";5))&
TEXT(SUMPRODUCT(IFERROR(CODE(MID(INFO("DIRECTORY");{1;2;3;4;5}+50;1))*1000^(5-{1;2;3;4;5});));REPT("\ 000";5))&
TEXT(SUMPRODUCT(IFERROR(CODE(MID(INFO("DIRECTORY");{1;2;3;4;5}+55;1))*1000^(5-{1;2;3;4;5});));REPT("\ 000";5));"000";);" 0";" "));" ";".")
Изменено: БМВ - 29.03.2021 15:25:29
По вопросам из тем форума, личку не читаю.
 
Проверил вторую формулу - да, работает отлично.
Goedenavond!
 
Цитата
БМВ:  Версия Excel?
Если 365, то:
=ОБЪЕДИНИТЬ(".";;КОДСИМВ(ПСТР(A1;ПОСЛЕД(ДЛСТР(A1));1)))
 
Бахтиёр,
Цитата
Дмитрий(The_Prist) Щербаков написал:
т.к. если будете использовать формулы новейших версий, то не факт, что такая же версия есть у других пользователей.
По вопросам из тем форума, личку не читаю.
 
БМВ, понятно.
 
seggi, опять... Вернитесь в первое сообщение, приведите его в порядок
 
Цитата
БМВ написал:
если будете использовать формулы новейших версий, то не факт
я как-то начал использовать формулы новейших версий, а оказалось их нет еще в Microsoft Office
...а я уже оперирую ими вовсю, как наивный кампучиец
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
vikttur написал:
seggi , опять... Вернитесь в первое сообщение, приведите его в порядок
Извините, больше не буду.  
Goedenavond!
Страницы: 1
Наверх