С Новым годом! Форум программистов, компьютерный форум, киберфорум
MS Office Excel
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 12.02.2020
Сообщений: 5
1

Поиск фрагментов текста в ячейке на другом листе

12.02.2020, 16:26. Показов 2045. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день!
Нужна ваша помощь. На листе «Список» в столбце С указан перечень документов. Нужно по каждой профессии дать ответ – есть он в листе «Перечень» по данной профессии или нет.
Пытался сделать с помощью формулы ЕСЛИ(СУММПРОИЗВ(--ЕЧИСЛО(ПОИСК(C2;Перечень!$C$1)));"Есть";"Нет")
Но не ищет правильно. Например, по «Аккумуляторщик» нашел только 2 позиции из 3х. По строке 177 – не нашел.
Вложения
Тип файла: xlsx Пример.xlsx (50.8 Кб, 8 просмотров)
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.02.2020, 16:26
Ответы с готовыми решениями:

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

Поиск фрагментов текста в ячейке
Помогите, пожалуйста, прописать формулу. Видела похожие обращения к Вам за помощью, но что-то у...

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

Такой же цвет текста на другом листе в той же ячейке
Суть задачи, на листе "Прайс" по мере необходимости я выделяю ячейки цветом с помощью макросов -...

5
4135 / 2239 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
12.02.2020, 20:03 2
Ищет правильно. Просто у оператора руки растут не оттуда и он добавил пробел в конце текста (ячейка C177), а в ячейке C1 текст заканчивается точкой. Отсюда и закономерный и правильный результат, ничего не найдено. В общем, удалите пробел или используйте что-то вроде :

Код
=ЕСЛИ(ЕЧИСЛО(ПОИСК(СЖПРОБЕЛЫ(C177);Перечень!$C$1));"Есть";"Нет")

P.S. Возможно имеет смысл удалить лишние пробелы и в ячейке Перечень!$C$1
1
6023 / 3217 / 719
Регистрация: 23.11.2010
Сообщений: 10,749
12.02.2020, 21:45 3
Лучший ответ Сообщение было отмечено lomaxx как решение

Решение

Цитата Сообщение от pashulka Посмотреть сообщение
Возможно имеет смысл удалить лишние пробелы
Поддерживаю, лишних пробелов почти в половине строк, притом довольно много задвоений строк, из-за этого счет увеличивается
Дубли строк выделены, только прочитайте внимательно перед удалением, в паре строк разница в склонении одного слова только, надо будет исправить и в исходнике.
Свериться по количеству можно в Сводной таблице на Лист3, Ваш Перечень на Лист2

PS. Надо быть внимательнее.... очень
Вложения
Тип файла: rar Пример.rar (99.5 Кб, 4 просмотров)
1
6023 / 3217 / 719
Регистрация: 23.11.2010
Сообщений: 10,749
12.02.2020, 21:47 4
Еще, три строки не идентифицировались из-за превышения длины строки
0
4135 / 2239 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
12.02.2020, 22:34 5
Для первоначального файла (без исправлений) можно использовать такой макрос. Все притензии принимаются, кроме нечёткого сравнения строк.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Private Sub Test()
    Dim a, rw&, cl&, txt1$, txt2$, c As New Collection
    a = Intersect(Лист1.UsedRange, Лист1.Range("B:C")).Value
    For rw = 1 To UBound(a)
        c.Add Trim$(a(rw, 2)), a(rw, 1)
    Next
    a = Лист2.Range("A1").CurrentRegion.Value
    For rw = 2 To UBound(a)
        txt1 = Trim$(a(rw, 3))
        For cl = 4 To UBound(a, 2)
            txt2 = c(a(1, cl))
            a(rw, cl) = IIf(InStr(txt2, txt1), "Есть", "Нет")
        Next
    Next
    Лист2.Range("A1").Resize(rw - 1, cl - 1) = a
End Sub

P.S. Для поиска без учёта регистра - нужно : (один вариант, на выбор)

1) Добавить в самое начало кода Option Compare Text
2) Использовать InStr(1, txt2, txt1, vbTextCompare)
3) Или UCase$/LCase$
1
0 / 0 / 0
Регистрация: 12.02.2020
Сообщений: 5
13.02.2020, 09:17  [ТС] 6
Огромное всем спасибо за помощь и участие!
0
13.02.2020, 09:17
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.02.2020, 09:17
Помогаю со студенческими работами здесь

Поиск фрагментов текста в ячейке с разными условиями
Добрый день! Помогите пожалуйста решить задачу. Дана таблица. В столбце "Наименование" список....

Поиск фрагментов текста в ячейке по строке
Добрый день. Не могу решить задачку:) Помогите пожалуйста. Есть текст в ячейках В, С, D, Е. Нужно...

Поиск фрагментов текста в ячейке с использованием макросов
Добрый день! Нужна Ваша помощь. Видела похожие темы, но все равно не получилось сделать. Дана...

Данные должны отображаться на другом листе в одной ячейке (без использования VBA)
Доброго времени суток. :) У меня такой вопрос возник. Есть таблица, например, (А1:Е100), и из...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
Что такое NullReferenceEx­­­ception и как исправить?
InfoMaster 08.01.2025
NullReferenceException - одно из самых распространенных исключений, с которым сталкиваются разработчики на C#. Это исключение возникает при попытке обратиться к членам объекта (методам, свойствам или. . .
Что такое Null Pointer Exception (NPE) и как это исправить?
InfoMaster 08.01.2025
Null Pointer Exception (NPE) - это одно из самых распространенных исключений в Java, которое возникает при попытке использовать ссылку на объект, значение которой равно null. Это исключение относится. . .
Русский язык в консоли C++
InfoMaster 08.01.2025
При разработке программ на C++ одной из частых проблем, с которой сталкиваются русскоязычные программисты, является корректное отображение кириллицы в консольных приложениях. Эта проблема особенно. . .
Telegram бот на C#
InfoMaster 08.01.2025
Разработка ботов для Telegram стала неотъемлемой частью современной экосистемы мессенджеров. C# предоставляет мощный и удобный инструментарий для создания разнообразных ботов, от простых. . .
Использование GraphQL в Go (Golang)
InfoMaster 08.01.2025
Go (Golang) является одним из наиболее популярных языков программирования, используемых для создания высокопроизводительных серверных приложений. Его архитектурные особенности и встроенные. . .
Что лучше использовать при создании класса в Java: сеттеры или конструктор?
Alexander-7 08.01.2025
Вопрос подробнее: На вопрос: «Когда одновременно создаются конструктор и сеттеры в классе – это нормально?» куратор уточнил: «Ваш класс может вообще не иметь сеттеров, а только конструктор и геттеры. . .
Как работать с GraphQL на TypeScript
InfoMaster 08.01.2025
Введение в GraphQL и TypeScript В современной разработке веб-приложений GraphQL стал мощным инструментом для создания гибких и эффективных API. В сочетании с TypeScript, эта технология. . .
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru