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

Вход

Регистрация

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

 

= Мир MS Excel/Как сделать формулу без промежуточных столбцов. - Страница 2 - Мир MS Excel

Старая форма входа
  • Страница 2 из 2
  • «
  • 1
  • 2
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Как сделать формулу без промежуточных столбцов. (Формулы/Formulas)
Как сделать формулу без промежуточных столбцов.
dmitrijaltman8 Дата: Воскресенье, 08.08.2021, 15:42 | Сообщение № 21
Группа: Пользователи
Ранг: Участник
Сообщений: 61
Репутация: 0 ±
Замечаний: 20% ±

2016
Светлый, теперь работает, но не для всех значений (только если слово для поиска - ttx456s - имеет ровно 7 символов).

В формуле
Код
=ЕСЛИ(ЕОШИБКА(ПОИСК($N$3;$D4&$E4))=ИСТИНА;"";ЕСЛИ(ЕОШИБКА($A4&$B4&$C4&ПСТР($D4;ПОИСК($N$3&"(";$D4&$E4;1)+3;ПОИСК(")";ПРАВСИМВ($D4&$E4;ДЛСТР($D4&$E4)-НАЙТИ($N$3;$D4&$E4)-1);1)-1));"";$A4&$B4&$C4&ПСТР($D4&$E4;ПОИСК($N$3&"(";$D4&$E4;1)+7;ПОИСК(")";ПРАВСИМВ($D4&$E4;ДЛСТР($D4&$E4)-НАЙТИ($N$3;$D4&$E4)-1);1)-4)))

-параметр "+7" видимо отвечает за длину искомого слова

Можно поставить эти числа внутри формулы - в зависимости от длины слова ?
просто сейчас например слово короче на два символа - то в столбце где идут результаты - эти выводимые результаты обрезаются на два символа - слева и справа. (А если слово например больше на 1 символ - в результаты добавляются лишние символы)
 
Ответить
СообщениеСветлый, теперь работает, но не для всех значений (только если слово для поиска - ttx456s - имеет ровно 7 символов).

В формуле
Код
=ЕСЛИ(ЕОШИБКА(ПОИСК($N$3;$D4&$E4))=ИСТИНА;"";ЕСЛИ(ЕОШИБКА($A4&$B4&$C4&ПСТР($D4;ПОИСК($N$3&"(";$D4&$E4;1)+3;ПОИСК(")";ПРАВСИМВ($D4&$E4;ДЛСТР($D4&$E4)-НАЙТИ($N$3;$D4&$E4)-1);1)-1));"";$A4&$B4&$C4&ПСТР($D4&$E4;ПОИСК($N$3&"(";$D4&$E4;1)+7;ПОИСК(")";ПРАВСИМВ($D4&$E4;ДЛСТР($D4&$E4)-НАЙТИ($N$3;$D4&$E4)-1);1)-4)))

-параметр "+7" видимо отвечает за длину искомого слова

Можно поставить эти числа внутри формулы - в зависимости от длины слова ?
просто сейчас например слово короче на два символа - то в столбце где идут результаты - эти выводимые результаты обрезаются на два символа - слева и справа. (А если слово например больше на 1 символ - в результаты добавляются лишние символы)

Автор - dmitrijaltman8
Дата добавления - 08.08.2021 в 15:42
bmv98rus Дата: Воскресенье, 08.08.2021, 15:46 | Сообщение № 22
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4099
Репутация: 766 ±
Замечаний: 0% ±

Excel 2013/2016
от
Цитата dmitrijaltman8, 07.08.2021 в 22:27, в сообщении № 1 ()
Как сделать формулу без промежуточных столбцов.
пришли к
Цитата dmitrijaltman8, 08.08.2021 в 14:54, в сообщении № 18 ()
(а промежуточный столбец R - без изменений. Буду использовать его)

:D


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
Сообщениеот
Цитата dmitrijaltman8, 07.08.2021 в 22:27, в сообщении № 1 ()
Как сделать формулу без промежуточных столбцов.
пришли к
Цитата dmitrijaltman8, 08.08.2021 в 14:54, в сообщении № 18 ()
(а промежуточный столбец R - без изменений. Буду использовать его)

:D

Автор - bmv98rus
Дата добавления - 08.08.2021 в 15:46
bmv98rus Дата: Воскресенье, 08.08.2021, 15:52 | Сообщение № 23
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4099
Репутация: 766 ±
Замечаний: 0% ±

Excel 2013/2016
dmitrijaltman8, ну вы б посомтрели что да как в формулах у меня
Код
=FIND($X$3&"(";$D$4:$D$73&$E$4:$E$73)+LEN($X$3)

Это как раз было то что вы хотели, но судя по всему вы как то криво применяете. Дайте пример файла который не находит все ваши 300 значений. Ну а то что с доп столбцом будет быстрее - тут и к бабке не ходи. По вашим 9000x2 значений сделать расчет 1 раз или столько раз сколько срабатывает формула массивная.


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
Сообщениеdmitrijaltman8, ну вы б посомтрели что да как в формулах у меня
Код
=FIND($X$3&"(";$D$4:$D$73&$E$4:$E$73)+LEN($X$3)

Это как раз было то что вы хотели, но судя по всему вы как то криво применяете. Дайте пример файла который не находит все ваши 300 значений. Ну а то что с доп столбцом будет быстрее - тут и к бабке не ходи. По вашим 9000x2 значений сделать расчет 1 раз или столько раз сколько срабатывает формула массивная.

Автор - bmv98rus
Дата добавления - 08.08.2021 в 15:52
dmitrijaltman8 Дата: Воскресенье, 08.08.2021, 16:23 | Сообщение № 24
Группа: Пользователи
Ранг: Участник
Сообщений: 61
Репутация: 0 ±
Замечаний: 20% ±

2016
bmv98rus, эта формула вообще ошибку ЗНАЧ выдает
 
Ответить
Сообщениеbmv98rus, эта формула вообще ошибку ЗНАЧ выдает

Автор - dmitrijaltman8
Дата добавления - 08.08.2021 в 16:23
dmitrijaltman8 Дата: Воскресенье, 08.08.2021, 16:24 | Сообщение № 25
Группа: Пользователи
Ранг: Участник
Сообщений: 61
Репутация: 0 ±
Замечаний: 20% ±

2016
Светлый, теперь работает, но не для всех значений (только если слово для поиска - ttx456s - имеет ровно 7 символов).

В формуле
Код
=ЕСЛИ(ЕОШИБКА(ПОИСК($N$3;$D4&$E4))=ИСТИНА;"";ЕСЛИ(ЕОШИБКА($A4&$B4&$C4&ПСТР($D4;ПОИСК($N$3&"(";$D4&$E4;1)+3;ПОИСК(")";ПРАВСИМВ($D4&$E4;ДЛСТР($D4&$E4)-НАЙТИ($N$3;$D4&$E4)-1);1)-1));"";$A4&$B4&$C4&ПСТР($D4&$E4;ПОИСК($N$3&"(";$D4&$E4;1)+7;ПОИСК(")";ПРАВСИМВ($D4&$E4;ДЛСТР($D4&$E4)-НАЙТИ($N$3;$D4&$E4)-1);1)-4)))


-параметр "+7" видимо отвечает за длину искомого слова

Можно поставить эти числа внутри формулы - в зависимости от длины слова ?
просто сейчас например слово короче на два символа - то в столбце где идут результаты - эти выводимые результаты обрезаются на два символа - слева и справа. (А если слово например больше на 1 символ - в результаты добавляются лишние символы)


Сообщение отредактировал dmitrijaltman8 - Воскресенье, 08.08.2021, 16:34
 
Ответить
СообщениеСветлый, теперь работает, но не для всех значений (только если слово для поиска - ttx456s - имеет ровно 7 символов).

В формуле
Код
=ЕСЛИ(ЕОШИБКА(ПОИСК($N$3;$D4&$E4))=ИСТИНА;"";ЕСЛИ(ЕОШИБКА($A4&$B4&$C4&ПСТР($D4;ПОИСК($N$3&"(";$D4&$E4;1)+3;ПОИСК(")";ПРАВСИМВ($D4&$E4;ДЛСТР($D4&$E4)-НАЙТИ($N$3;$D4&$E4)-1);1)-1));"";$A4&$B4&$C4&ПСТР($D4&$E4;ПОИСК($N$3&"(";$D4&$E4;1)+7;ПОИСК(")";ПРАВСИМВ($D4&$E4;ДЛСТР($D4&$E4)-НАЙТИ($N$3;$D4&$E4)-1);1)-4)))


-параметр "+7" видимо отвечает за длину искомого слова

Можно поставить эти числа внутри формулы - в зависимости от длины слова ?
просто сейчас например слово короче на два символа - то в столбце где идут результаты - эти выводимые результаты обрезаются на два символа - слева и справа. (А если слово например больше на 1 символ - в результаты добавляются лишние символы)

Автор - dmitrijaltman8
Дата добавления - 08.08.2021 в 16:24
Светлый Дата: Воскресенье, 08.08.2021, 16:50 | Сообщение № 26
Группа: Друзья
Ранг: Старожил
Сообщений: 1823
Репутация: 507 ±
Замечаний: 0% ±

Excel 2013, 2016
7 можно заменить на ДЛСТР($N$3)


Программировать проще, чем писать стихи.
 
Ответить
Сообщение7 можно заменить на ДЛСТР($N$3)

Автор - Светлый
Дата добавления - 08.08.2021 в 16:50
dmitrijaltman8 Дата: Воскресенье, 08.08.2021, 17:05 | Сообщение № 27
Группа: Пользователи
Ранг: Участник
Сообщений: 61
Репутация: 0 ±
Замечаний: 20% ±

2016
Светлый, не срабатывает.
Некоторые результаты стали обрезаться на половину - с правой стороны (если слово меньше 7 символов).
А если слово больше 7 символов - прибавляются лишние символы справа.
 
Ответить
СообщениеСветлый, не срабатывает.
Некоторые результаты стали обрезаться на половину - с правой стороны (если слово меньше 7 символов).
А если слово больше 7 символов - прибавляются лишние символы справа.

Автор - dmitrijaltman8
Дата добавления - 08.08.2021 в 17:05
Светлый Дата: Воскресенье, 08.08.2021, 17:52 | Сообщение № 28
Группа: Друзья
Ранг: Старожил
Сообщений: 1823
Репутация: 507 ±
Замечаний: 0% ±

Excel 2013, 2016
Код
=ЕСЛИ(ЕОШИБКА(ПОИСК($N$3;$D4&$E4))=ИСТИНА;"";ЕСЛИ(ЕОШИБКА($A4&$B4&$C4&ПСТР($D4;ПОИСК($N$3&"(";$D4&$E4;1)+3;ПОИСК(")";ПРАВСИМВ($D4&$E4;ДЛСТР($D4&$E4)-НАЙТИ($N$3;$D4&$E4)-1);1)-1));"";$A4&$B4&$C4&ПСТР($D4&$E4;ПОИСК($N$3&"(";$D4&$E4;1)+ДЛСТР($N$3);ПОИСК(")";ПРАВСИМВ($D4&$E4;ДЛСТР($D4&$E4)-НАЙТИ($N$3;$D4&$E4)-1);1)-ДЛСТР($N$3)+3)))


Программировать проще, чем писать стихи.
 
Ответить
Сообщение
Код
=ЕСЛИ(ЕОШИБКА(ПОИСК($N$3;$D4&$E4))=ИСТИНА;"";ЕСЛИ(ЕОШИБКА($A4&$B4&$C4&ПСТР($D4;ПОИСК($N$3&"(";$D4&$E4;1)+3;ПОИСК(")";ПРАВСИМВ($D4&$E4;ДЛСТР($D4&$E4)-НАЙТИ($N$3;$D4&$E4)-1);1)-1));"";$A4&$B4&$C4&ПСТР($D4&$E4;ПОИСК($N$3&"(";$D4&$E4;1)+ДЛСТР($N$3);ПОИСК(")";ПРАВСИМВ($D4&$E4;ДЛСТР($D4&$E4)-НАЙТИ($N$3;$D4&$E4)-1);1)-ДЛСТР($N$3)+3)))

Автор - Светлый
Дата добавления - 08.08.2021 в 17:52
dmitrijaltman8 Дата: Воскресенье, 08.08.2021, 19:41 | Сообщение № 29
Группа: Пользователи
Ранг: Участник
Сообщений: 61
Репутация: 0 ±
Замечаний: 20% ±

2016
Светлый, спасибо в общем работает.
Но некоторые результаты (их немного) - выдаются обрезанными более чем на половину.

Не знаю почему.
Особых отличий в самих этих обрезаемых текстовых записях - я не нашел. Они также начинаются с заданного слова и заканчиваются на ",)," как и все прочие.


Сообщение отредактировал dmitrijaltman8 - Воскресенье, 08.08.2021, 20:04
 
Ответить
СообщениеСветлый, спасибо в общем работает.
Но некоторые результаты (их немного) - выдаются обрезанными более чем на половину.

Не знаю почему.
Особых отличий в самих этих обрезаемых текстовых записях - я не нашел. Они также начинаются с заданного слова и заканчиваются на ",)," как и все прочие.

Автор - dmitrijaltman8
Дата добавления - 08.08.2021 в 19:41
Светлый Дата: Воскресенье, 08.08.2021, 20:24 | Сообщение № 30
Группа: Друзья
Ранг: Старожил
Сообщений: 1823
Репутация: 507 ±
Замечаний: 0% ±

Excel 2013, 2016
Вот на этой строке Ваша формула выдаёт ошибку: fgh(435dfg ttx456s,),ttx456s(343097845 34dfg fd4,),
Ищет первое совпадение, обрезает от второго по длине от первого.


Программировать проще, чем писать стихи.
 
Ответить
СообщениеВот на этой строке Ваша формула выдаёт ошибку: fgh(435dfg ttx456s,),ttx456s(343097845 34dfg fd4,),
Ищет первое совпадение, обрезает от второго по длине от первого.

Автор - Светлый
Дата добавления - 08.08.2021 в 20:24
bmv98rus Дата: Воскресенье, 08.08.2021, 20:56 | Сообщение № 31
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4099
Репутация: 766 ±
Замечаний: 0% ±

Excel 2013/2016
В самом первом файле есть формула
Код
=IFERROR(A4&B4&C4&TRIM(LEFT(SUBSTITUTE(MID(D4&E4;FIND($N$3&"(";D4&E4)+7;999);"),";REPT(" ";999);1);999))&"),";"")

Она разве не дает нужный результат?


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
СообщениеВ самом первом файле есть формула
Код
=IFERROR(A4&B4&C4&TRIM(LEFT(SUBSTITUTE(MID(D4&E4;FIND($N$3&"(";D4&E4)+7;999);"),";REPT(" ";999);1);999))&"),";"")

Она разве не дает нужный результат?

Автор - bmv98rus
Дата добавления - 08.08.2021 в 20:56
Светлый Дата: Воскресенье, 08.08.2021, 23:07 | Сообщение № 32
Группа: Друзья
Ранг: Старожил
Сообщений: 1823
Репутация: 507 ±
Замечаний: 0% ±

Excel 2013, 2016
dmitrijaltman8, Чуть подправил Вашу формулу:
Код
=ЕСЛИ(ЕОШИБКА(ПОИСК($N$3&"(";$D4&$E4))=ИСТИНА;"";ЕСЛИ(ЕОШИБКА($A4&$B4&$C4&ПСТР($D4;ПОИСК($N$3&"(";$D4&$E4;1)+3;ПОИСК(")";ПРАВСИМВ($D4&$E4;ДЛСТР($D4&$E4)-НАЙТИ($N$3&"(";$D4&$E4)-1);1)-1));"";$A4&$B4&$C4&ПСТР($D4&$E4;ПОИСК($N$3&"(";$D4&$E4;1)+ДЛСТР($N$3);ПОИСК(")";ПРАВСИМВ($D4&$E4;ДЛСТР($D4&$E4)-НАЙТИ($N$3&"(";$D4&$E4)-1);1)-ДЛСТР($N$3)+3)))


Программировать проще, чем писать стихи.
 
Ответить
Сообщениеdmitrijaltman8, Чуть подправил Вашу формулу:
Код
=ЕСЛИ(ЕОШИБКА(ПОИСК($N$3&"(";$D4&$E4))=ИСТИНА;"";ЕСЛИ(ЕОШИБКА($A4&$B4&$C4&ПСТР($D4;ПОИСК($N$3&"(";$D4&$E4;1)+3;ПОИСК(")";ПРАВСИМВ($D4&$E4;ДЛСТР($D4&$E4)-НАЙТИ($N$3&"(";$D4&$E4)-1);1)-1));"";$A4&$B4&$C4&ПСТР($D4&$E4;ПОИСК($N$3&"(";$D4&$E4;1)+ДЛСТР($N$3);ПОИСК(")";ПРАВСИМВ($D4&$E4;ДЛСТР($D4&$E4)-НАЙТИ($N$3&"(";$D4&$E4)-1);1)-ДЛСТР($N$3)+3)))

Автор - Светлый
Дата добавления - 08.08.2021 в 23:07
dmitrijaltman8 Дата: Понедельник, 09.08.2021, 07:08 | Сообщение № 33
Группа: Пользователи
Ранг: Участник
Сообщений: 61
Репутация: 0 ±
Замечаний: 20% ±

2016
Светлый, спасибо. Теперь все нормально работает.
 
Ответить
СообщениеСветлый, спасибо. Теперь все нормально работает.

Автор - dmitrijaltman8
Дата добавления - 09.08.2021 в 07:08
bmv98rus Дата: Понедельник, 09.08.2021, 08:48 | Сообщение № 34
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4099
Репутация: 766 ±
Замечаний: 0% ±

Excel 2013/2016
Но меня все ж интересует, почему предпочтение отдается более длинной формуле? Даже если оставить без изменений то считате она чуть медленнее, а если 999 заменить на 99 то быстрее при наличии искомого и чуть медленнее при отсутствии
Код
=IFERROR(A4&B4&C4&TRIM(LEFT(SUBSTITUTE(MID(D4&E4;FIND($N$3&"(";D4&E4)+7;99);")";REPT(" ";99);1);99))&"),";"")


добавить анализ и она все равно и короче и быстрее
Код
=IF(ISERROR(SEARCH($N$3&"(";$D4&$E4));"";IFERROR(A4&B4&C4&TRIM(LEFT(SUBSTITUTE(MID(D4&E4;FIND($N$3&"(";D4&E4)+7;99);")";REPT(" ";99);1);99))&"),";""))

даже если убрать ненужное
Код
=IF(ISERROR(SEARCH($N$3&"(";$D4&$E4));"";IF(ISERROR($A4&$B4&$C4&MID($D4;SEARCH($N$3&"(";$D4&$E4;1)+3;SEARCH(")";RIGHT($D4&$E4;LEN($D4&$E4)-FIND($N$3&"(";$D4&$E4)-1);1)-1));"";$A4&$B4&$C4&MID($D4&$E4;SEARCH($N$3&"(";$D4&$E4;1)+LEN($N$3);SEARCH(")";RIGHT($D4&$E4;LEN($D4&$E4)-FIND($N$3&"(";$D4&$E4)-1);1)-LEN($N$3)+3)))


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
СообщениеНо меня все ж интересует, почему предпочтение отдается более длинной формуле? Даже если оставить без изменений то считате она чуть медленнее, а если 999 заменить на 99 то быстрее при наличии искомого и чуть медленнее при отсутствии
Код
=IFERROR(A4&B4&C4&TRIM(LEFT(SUBSTITUTE(MID(D4&E4;FIND($N$3&"(";D4&E4)+7;99);")";REPT(" ";99);1);99))&"),";"")


добавить анализ и она все равно и короче и быстрее
Код
=IF(ISERROR(SEARCH($N$3&"(";$D4&$E4));"";IFERROR(A4&B4&C4&TRIM(LEFT(SUBSTITUTE(MID(D4&E4;FIND($N$3&"(";D4&E4)+7;99);")";REPT(" ";99);1);99))&"),";""))

даже если убрать ненужное
Код
=IF(ISERROR(SEARCH($N$3&"(";$D4&$E4));"";IF(ISERROR($A4&$B4&$C4&MID($D4;SEARCH($N$3&"(";$D4&$E4;1)+3;SEARCH(")";RIGHT($D4&$E4;LEN($D4&$E4)-FIND($N$3&"(";$D4&$E4)-1);1)-1));"";$A4&$B4&$C4&MID($D4&$E4;SEARCH($N$3&"(";$D4&$E4;1)+LEN($N$3);SEARCH(")";RIGHT($D4&$E4;LEN($D4&$E4)-FIND($N$3&"(";$D4&$E4)-1);1)-LEN($N$3)+3)))

Автор - bmv98rus
Дата добавления - 09.08.2021 в 08:48
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Как сделать формулу без промежуточных столбцов. (Формулы/Formulas)
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:

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