Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Палиндром - Страница 2 - Мир MS Excel

Старая форма входа
  • Страница 2 из 2
  • «
  • 1
  • 2
Модератор форума: китин  
Мир MS Excel » Работа и общение » Мозговой штурм » Палиндром (Формула проверки палиндрома)
Палиндром
MCH Дата: Понедельник, 04.05.2015, 08:14 | Сообщение № 21
Группа: Админы
Ранг: Старожил
Сообщений: 2003
Репутация: 751 ±
Замечаний: ±

Ну да, если задать весь столбец.

Допустимо ли указывать СТРОКА(A:A) или СТОЛБЕЦ(1:1)?
Это сильно тормозит формулу, данным читом не стал пользоваться, указал СТРОКА($1:$99)
 
Ответить
Сообщение
Ну да, если задать весь столбец.

Допустимо ли указывать СТРОКА(A:A) или СТОЛБЕЦ(1:1)?
Это сильно тормозит формулу, данным читом не стал пользоваться, указал СТРОКА($1:$99)

Автор - MCH
Дата добавления - 04.05.2015 в 08:14
AlexM Дата: Понедельник, 04.05.2015, 09:32 | Сообщение № 22
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4511
Репутация: 1128 ±
Замечаний: 0% ±

Excel 2003
Выдержка из правил В формулах НЕЛЬЗЯ использовать ссылки на целые столбцы/строки, если автором топика не оговорено иное и СТРОКА(1:99) или СТОЛБЕЦ(A:Z) можно использовать - они не формируют массив в размере листа
И да, формулы должны работать в 2003, если не оговорено иное

Сегодня понедельник. Открываемся.
krosav4ig, Ну да, если задать весь столбец. 58 и 92. Наверно формулы у нас одинаковые.

Формула массивная для строки без пробелов
Код
=И(ПРАВБ(ЛЕВБ(A4;СТРОКА(A:A)))=ЛЕВБ(ПРАВБ(A4;СТРОКА(A:A))))
с пробелами
Код
=И(ПРАВБ(ЛЕВБ(ПОДСТАВИТЬ(A7;" ";);СТРОКА(A:A)))=ЛЕВБ(ПРАВБ(ПОДСТАВИТЬ(A7;" ";);СТРОКА(A:A))))



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеВыдержка из правил В формулах НЕЛЬЗЯ использовать ссылки на целые столбцы/строки, если автором топика не оговорено иное и СТРОКА(1:99) или СТОЛБЕЦ(A:Z) можно использовать - они не формируют массив в размере листа
И да, формулы должны работать в 2003, если не оговорено иное

Сегодня понедельник. Открываемся.
krosav4ig, Ну да, если задать весь столбец. 58 и 92. Наверно формулы у нас одинаковые.

Формула массивная для строки без пробелов
Код
=И(ПРАВБ(ЛЕВБ(A4;СТРОКА(A:A)))=ЛЕВБ(ПРАВБ(A4;СТРОКА(A:A))))
с пробелами
Код
=И(ПРАВБ(ЛЕВБ(ПОДСТАВИТЬ(A7;" ";);СТРОКА(A:A)))=ЛЕВБ(ПРАВБ(ПОДСТАВИТЬ(A7;" ";);СТРОКА(A:A))))

Автор - AlexM
Дата добавления - 04.05.2015 в 09:32
MCH Дата: Понедельник, 04.05.2015, 11:54 | Сообщение № 23
Группа: Админы
Ранг: Старожил
Сообщений: 2003
Репутация: 751 ±
Замечаний: ±

У меня немного другой алгоритм
Код
=И(ПОИСК(ПСТР(ПОДСТАВИТЬ(A1;" ";);СТРОКА($1:$99);1);ПРАВБ(ПОДСТАВИТЬ(A1;" ";);СТРОКА($1:$99))&A1)=1)

СТРОКА(A:A) принципиально не стал использовать, т.к. формула получается очень медленной
 
Ответить
СообщениеУ меня немного другой алгоритм
Код
=И(ПОИСК(ПСТР(ПОДСТАВИТЬ(A1;" ";);СТРОКА($1:$99);1);ПРАВБ(ПОДСТАВИТЬ(A1;" ";);СТРОКА($1:$99))&A1)=1)

СТРОКА(A:A) принципиально не стал использовать, т.к. формула получается очень медленной

Автор - MCH
Дата добавления - 04.05.2015 в 11:54
ZORRO2005 Дата: Понедельник, 04.05.2015, 11:55 | Сообщение № 24
Группа: Друзья
Ранг: Обитатель
Сообщений: 382
Репутация: 148 ±
Замечаний: 0% ±

Excel2010
Без пробелов:
Код
=И(ПСТР(A2;(ДЛСТР(A2)+1)*{1;0}+{-1;1}*СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A2)));1)=ПСТР(A2;СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A2)));1))

Код
=СЧЁТ(1/(ПСТР(A2;ДЛСТР(A2)+1-СТРОКА(A:A);1)=ПСТР(A2;СТРОКА(A:A);1)))=ДЛСТР(A2)
 
Ответить
СообщениеБез пробелов:
Код
=И(ПСТР(A2;(ДЛСТР(A2)+1)*{1;0}+{-1;1}*СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A2)));1)=ПСТР(A2;СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A2)));1))

Код
=СЧЁТ(1/(ПСТР(A2;ДЛСТР(A2)+1-СТРОКА(A:A);1)=ПСТР(A2;СТРОКА(A:A);1)))=ДЛСТР(A2)

Автор - ZORRO2005
Дата добавления - 04.05.2015 в 11:55
AlexM Дата: Понедельник, 04.05.2015, 14:35 | Сообщение № 25
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4511
Репутация: 1128 ±
Замечаний: 0% ±

Excel 2003
СТРОКА(A:A) принципиально не стал использовать, т.к. формула получается очень медленной
если в формулах заменить СТРОКА(A:A) на СТРОКА($1:99), то формулы прибавят по 4 символа, т.е. будет 62 и 96



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.


Сообщение отредактировал AlexM - Понедельник, 04.05.2015, 14:36
 
Ответить
Сообщение
СТРОКА(A:A) принципиально не стал использовать, т.к. формула получается очень медленной
если в формулах заменить СТРОКА(A:A) на СТРОКА($1:99), то формулы прибавят по 4 символа, т.е. будет 62 и 96

Автор - AlexM
Дата добавления - 04.05.2015 в 14:35
Светлый Дата: Понедельник, 04.05.2015, 15:16 | Сообщение № 26
Группа: Друзья
Ранг: Старожил
Сообщений: 1830
Репутация: 510 ±
Замечаний: 0% ±

Excel 2013, 2016
Вскрываюсь.
Без пробелов, 73 символа, массивная:
Код
=СУММ(Ч(ЛЕВБ(ПРАВБ(A2;СТРОКА($1:95)))=ПСТР(A2;СТРОКА($1:95);1)))=ДЛСТР(A2)

С пробелами, 124 символа, массивная:
Код
=СУММ(Ч(ЛЕВБ(ПРАВБ(ПОДСТАВИТЬ(A2;" ";);СТРОКА($1:95)))=ПСТР(ПОДСТАВИТЬ(A2;" ";);СТРОКА($1:95);1)))=ДЛСТР(ПОДСТАВИТЬ(A2;" ";))


Решения - супер! Я восхищён! Спасибо!


Программировать проще, чем писать стихи.

Сообщение отредактировал Светлый - Понедельник, 04.05.2015, 19:56
 
Ответить
СообщениеВскрываюсь.
Без пробелов, 73 символа, массивная:
Код
=СУММ(Ч(ЛЕВБ(ПРАВБ(A2;СТРОКА($1:95)))=ПСТР(A2;СТРОКА($1:95);1)))=ДЛСТР(A2)

С пробелами, 124 символа, массивная:
Код
=СУММ(Ч(ЛЕВБ(ПРАВБ(ПОДСТАВИТЬ(A2;" ";);СТРОКА($1:95)))=ПСТР(ПОДСТАВИТЬ(A2;" ";);СТРОКА($1:95);1)))=ДЛСТР(ПОДСТАВИТЬ(A2;" ";))


Решения - супер! Я восхищён! Спасибо!

Автор - Светлый
Дата добавления - 04.05.2015 в 15:16
krosav4ig Дата: Понедельник, 04.05.2015, 18:46 | Сообщение № 27
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
мои формулы такие же как у Алексея (AlexM), макрофункция в файле (пока искал свой файл написал новую на 12 символов меньше :) )
Код
=И(ПРАВБ(ЛЕВБ(ПОДСТАВИТЬ(A1;" ";);СТРОКА(A:A)))=ЛЕВБ(ПРАВБ(ПОДСТАВИТЬ(A1;" ";);СТРОКА(A:A))))

Код
=И(ПРАВБ(ЛЕВБ(A1;СТРОКА(A:A)))=ЛЕВБ(ПРАВБ(A1;СТРОКА(A:A))))
К сообщению приложен файл: Palindrom-2-.xls (31.5 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Понедельник, 04.05.2015, 18:47
 
Ответить
Сообщениемои формулы такие же как у Алексея (AlexM), макрофункция в файле (пока искал свой файл написал новую на 12 символов меньше :) )
Код
=И(ПРАВБ(ЛЕВБ(ПОДСТАВИТЬ(A1;" ";);СТРОКА(A:A)))=ЛЕВБ(ПРАВБ(ПОДСТАВИТЬ(A1;" ";);СТРОКА(A:A))))

Код
=И(ПРАВБ(ЛЕВБ(A1;СТРОКА(A:A)))=ЛЕВБ(ПРАВБ(A1;СТРОКА(A:A))))

Автор - krosav4ig
Дата добавления - 04.05.2015 в 18:46
Rioran Дата: Пятница, 08.05.2015, 16:08 | Сообщение № 28
Группа: Авторы
Ранг: Ветеран
Сообщений: 903
Репутация: 290 ±
Замечаний: 0% ±

Excel 2013
Вне конкурса, 107 без пробелов:

Код
=И(ПСТР(A3&ПОВТОР(" ";45-ДЛСТР(A3));СТРОКА(A1:A22);1)=ПСТР(ПОВТОР(" ";45-ДЛСТР(A3))&A3;46-СТРОКА(A1:A22);1))


Роман, Москва, voronov_rv@mail.ru
Яндекс-Деньги: 41001312674279
 
Ответить
СообщениеВне конкурса, 107 без пробелов:

Код
=И(ПСТР(A3&ПОВТОР(" ";45-ДЛСТР(A3));СТРОКА(A1:A22);1)=ПСТР(ПОВТОР(" ";45-ДЛСТР(A3))&A3;46-СТРОКА(A1:A22);1))

Автор - Rioran
Дата добавления - 08.05.2015 в 16:08
Мир MS Excel » Работа и общение » Мозговой штурм » Палиндром (Формула проверки палиндрома)
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!