Как в excel в ячейке удалить слово

Копировать, убрать/удалить первое слово или несколько первых слов в ячейке Excel

Бывает, что возникает потребность в удалении первого слова или нескольких слов вначале фразы в ячейке таблицы «Эксель». Выполнить это руками очень сложно, особенно, когда список представляет собой перечень из нескольких сотен или тысяч позиций, при помощи одной функции это сделать тоже невозможно.

Чтобы выполнить задачу по удалению первых 2-3 (или первого одного) слов необходимо воспользоваться системой (сочетанием) из нескольких функций, о которых расскажем ниже:

Первая функция «ПОДСТАВИТЬ» — она находит нужный текст и заменяет его на другой. У этой функции есть одно большое преимущество – это возможность заменить текст в определенной позиции. То есть заменить текст, встречающийся первый, второй, третий и т.д. раз по счету. В нашем случае эта функция заменит пробел, встречающийся второй раз на какой-нибудь символ, желательно не встречающийся в тексте.

Вторая функция «НАЙТИ» — находит позицию текста и присваивает позиции числовое значение. Например, если замененный нами на символ пробел будет стоять на 12 месте от начала строки, то функция найти примет значение 12.

Третья функция это «ЛЕВСИМВ» или «ПРАВСИМВ» (в зависимости от того будем ли мы удалять слова справа или слева). «ЛЕВСИМВ» или «ПРАВСИМВ» — присваивают ячейке строго определенное количество символов из текста.

Четвертая функция «ДЛСТР» — находит длину строки в ячейке и определяет количество символов в выбранной ячейке.

Теперь давайте составим систему из этих функций, которая будет отрезать (удалять) первые три слова из ячеек.

Система выглядит следующим образом:

=ПРАВСИМВ(B3;((ДЛСТР(B3))-(НАЙТИ(«*»;ПОДСТАВИТЬ(B3;» «;»*»;3)))))

В этой системе функция «ПОДСТАВИТЬ» заменяет третий по счету пробел на знак «*», функция «НАЙТИ» находит положение этого знака относительно начала строки, функция «ДЛСТР» считает общее количество знаков, а «ПРАВСИМВ» оставляет нужное количество знаков, справа, удаляя первые знаки ровно по длине «ненужных» слов.

Чтобы скопировать первые несколько слов можно воспользоваться похожей системой, только не удалять лишние знаки а наоборот оставить первые несколько знаков относящиеся к «нужным» словам.

Функции выглядят следующим образом:

=ЛЕВСИМВ(B3; НАЙТИ(«*»;ПОДСТАВИТЬ(B3;» «;»*»;3)).

Источник: ruexcel.ru

Как в excel в ячейке удалить слово

Подскажите, пожалуйста.
Задача следующая, в каждой из ячеек записаны предложения/значения и мне нужно удалять одно слово повторяющееся из каждой ячейки, слово Microsoft. Данное слово есть не в каждой ячейке.

Mcrosoft Excel
Microsoftt Word
Microsoft Project
Exchange
Microsoft Windows Server CAL
Remote Desctop

В результате должно получится без слова Microsoft:

Excel
Word
Project
Exchange
Windows Server CAL
Remote Desctop
Искала, гуглила, но так решения и не нашла, есть информация об удаление дубликатов, есть удаление первого, центрального или последнего слова в ячейке, а вот удаление конкретного ненужного слова из ячеек одного столбца я не нашла. Подскажите, пожалуйста, как это можно сделать.
Заранее благодарю.

Подскажите, пожалуйста.
Задача следующая, в каждой из ячеек записаны предложения/значения и мне нужно удалять одно слово повторяющееся из каждой ячейки, слово Microsoft. Данное слово есть не в каждой ячейке.

Mcrosoft Excel
Microsoftt Word
Microsoft Project
Exchange
Microsoft Windows Server CAL
Remote Desctop

В результате должно получится без слова Microsoft:

Excel
Word
Project
Exchange
Windows Server CAL
Remote Desctop
Искала, гуглила, но так решения и не нашла, есть информация об удаление дубликатов, есть удаление первого, центрального или последнего слова в ячейке, а вот удаление конкретного ненужного слова из ячеек одного столбца я не нашла. Подскажите, пожалуйста, как это можно сделать.
Заранее благодарю. sensorria

Сообщение Подскажите, пожалуйста.
Задача следующая, в каждой из ячеек записаны предложения/значения и мне нужно удалять одно слово повторяющееся из каждой ячейки, слово Microsoft. Данное слово есть не в каждой ячейке.

Mcrosoft Excel
Microsoftt Word
Microsoft Project
Exchange
Microsoft Windows Server CAL
Remote Desctop

В результате должно получится без слова Microsoft:

Excel
Word
Project
Exchange
Windows Server CAL
Remote Desctop
Искала, гуглила, но так решения и не нашла, есть информация об удаление дубликатов, есть удаление первого, центрального или последнего слова в ячейке, а вот удаление конкретного ненужного слова из ячеек одного столбца я не нашла. Подскажите, пожалуйста, как это можно сделать.
Заранее благодарю. Автор – sensorria
Дата добавления – 07.01.2014 в 20:39

Источник: www.excelworld.ru

Удалить первое слово в ячейке Excel, удалить первые N слов в ячейках

Иногда при работе с Excel возникает необходимость удалить первое слово или же несколько слов в начале фраз в ячейке.

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

Удалить первое слово из ячейки: составляем формулу

Технически, первое слово — это все символы в ячейке до первого пробела или до конца строки, если слово в ячейке всего одно. Как его удалить?

Находим позицию первого пробела

Есть 2 варианта формул, оба требуют сначала найти позицию первого символа пробела в строке, это делается с помощью функции ПОИСК или НАЙТИ. Обе ищут позицию в ячейке первого вхождения значения, указанного в первом аргументе, просматривая ячейку (второй аргумент) слева направо.

А что, если слово в строке одно, и пробела там нет? Обе функции вернут ошибку. Но ее можно обойти, производя поиск не в самой ячейке, а в тексте ячейки с присоединенным к нему справа пробелом (&» «). Смотрите пример:

Высчитываем позицию первого пробела в строке.

Может быть и другая неприятная ситуация — в начале ячейке может быть лишний пробел, что может нам испортить решение задачи. Если есть такая вероятность, рекомендуется сначала удалить лишние пробелы.

Заменяем фрагмент до первого пробела на пустоту

Теперь, когда нам известна позиция первого символа идущего после слова, ею можно воспользоваться, чтобы заменить слово на пустоту, что эквивалентно его удалению. Пустота обозначается кавычками, между которыми ничего нет («»).

Нам потребуется функция «ЗАМЕНИТЬ». Ей мы указываем ячейку, в которой производится замена, начиная с какой позиции, сколько символов, и на что заменим этот промежуток. Обратите внимание — функция не выдает ошибку в последней строке, несмотря на то, что в ячейке A8 меньше символов, чем число, которое мы ей указываем в B4.

Читайте также:  Как сравнить две ячейки в excel на совпадения

Заменяем часть ячейки до первого пробела на пустоту

Чтобы не создавать два столбца, можно совместить формулы в одну составную.
Просто заменим в формулах третьего столбца ссылки на формулы второго столбца самими этими формулами. Так будет выглядеть итоговая составная формула удаления первого слова в ячейке для первой строки с данными:

А ниже процесс, как происходит ее создание:

Удалить первое слово в ячейках в 2 клика

Как видно, формулы выше не очень просты, и требуется время, даже чтобы просто их написать. Помимо этого, формулы требуют создания дополнительного столбца (или двух). Надстройка !SEMTools поможет упростить и ускорить решение задачи. Ниже показан пример удаления первых слов в ячейках, прямо на месте:

В примере ниже удаляем уже 2 слова в начале всех ячеек столбца:

Аналогично решается задача для трех и более слов — можно использовать пункт «Первые N», чтобы указать количество удаляемых слов самостоятельно.

Заключение

Надеюсь, эта статья помогла вам, и вы с уверенностью сможете удалить первые слова из ячеек. Если хотите делать это, не прибегая к сложным формулам, скачайте и установите надстройку !SEMTools — она избавит вас от этой рутины и предоставит еще более 500 таких же простых и быстрых функций.

Источник: semtools.guru

Удаление текста до определенного знака

Ребят, подскажите пожалуйста:

есть много текста в ячейках, в каждом тексте есть разные фразы и разной длины, но всегда в каждом тексте есть символ “>” :
Зарубежный рэп, Lossless > 1234556
Зарубежный рэп, > 12321
Зарубежный > 212222323

1) как сделать так. чтобы удалялся весь текст, который идет до символа “>”, а лучше если до сочетания символов “>-”
2) и как удалить пробел в начале текста, в каждой ячейки?

20.05.2013, 00:48

Вырезка данных из текста до определенного знака
Здравствуйте, не знаю можно ли сделать так. Но все же. Есть текст из цифр, нужно вырезать и.

Удаление символов в записи после определенного знака
Здравствуйте! Подскажите пожалуйста, мне необходимо убрать в записях одного из полей таблицы все.

Удаление до определенного знака из всей строки в textbox1.Text?
Удаление до определенного знака из всей строки в textbox1.Text ? Добавлено через 2 минуты К.

Вывод текста из документа на форму до определенного знака
Здравствуйте! Нужно написать цикл для вывода содержимого из текстового документа в textbox.

20.05.2013, 00:51 2

1. Данные – Текст по столбцам с разделителем > И тут отметить Пропустить первый столбец.
можно отметить разделителем –

20.05.2013, 01:08 [ТС] 3

1. Данные – Текст по столбцам с разделителем > И тут отметить Пропустить первый столбец.
можно отметить разделителем –

В идеале конечно, если кто знает формулу конкретно удаления пробела в начале текста, ну или просто удаление первого символа во всех ячейках?

20.05.2013, 01:14 4 20.05.2013, 22:19 [ТС] 5

эта формула удаляет все пробелы в тексте.

до : Bored Sti> ff – Ghetto Research (320 kbps)
после: BoredSti>ff-GhettoResearch(320kbps)

21.05.2013, 08:52 6 21.05.2013, 09:53 7
21.05.2013, 09:53
21.05.2013, 09:53

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Удаление всех символов в строке до или после определённого знака
Добрый день! Подскажите пожалуйста как из строки можно удалить (или получить) все символы до или.

Удаление определённого текста из txt с вводом текста через $text
Здравствуйте, у меня возник вопрос. Как удалить определённый текст из txt с вводом текста через.

Удаление текста до определенного слова
Здравствуйте. Помогите,пожалуйста написать следующий макрос: Имеется текст вида: Статья i. .

Удаление текста после определённого слова
Всем привет! У меня возник вопрос. Как удалить текст после определённого слова, к примеру есть.

Источник: www.cyberforum.ru

Как удалить строки по условию?

Предположу, что почти каждый сталкивался с ситуацией, когда необходимо удалить только определенные строки: имеется большая таблица и необходимо удалить из неё только те строки, которые содержат какое-то слово (цифру, фразу). Для выполнения подобной задачи можно воспользоваться несколькими способами.

Способ первый:
Использовать встроенное средство Excel – фильтр. Сначала его необходимо “установить” на листе:

  • Выделяем таблицу с данными, включая заголовки. Если их нет – то выделяем с самой первой строки таблицы, в которой необходимо удалить данные
  • устанавливаем фильтр:
    • для Excel 2003 : ДанныеФильтрАвтофильтр
    • для Excel 2007-2010 : вкладка Данные (Data)Фильтр (Filter)(или вкладка Главная (Home)Сортировка и фильтр (Sort&Filter)Фильтр (Filter) )

Теперь выбираем условие для фильтра:

  • в Excel 2003 надо выбрать Условие и в появившейся форме выбрать непосредственно условие(“равно”, “содержит”, “начинается с” и т.д.), а напротив значение в соответствии с условием.
  • Для 2007-2010 Excel нужно выбрать Текстовые фильтры (Text Filters) и либо сразу выбрать одно из предлагаемых условий, либо нажать Настраиваемый фильтр (Custom Filter) и ввести значения для отбора в форме

После этого удалить отфильтрованные строки. В 2007 Excel могут возникнуть проблемы с удалением отфильтрованных строк, поэтому рекомендую сначала так же прочитать статью: Excel удаляет вместо отфильтрованных строк – все?! Как избежать.

Способ второй:
применить код VBA, который потребует только указания значения, которое необходимо найти в строке и номер столбца, в котором искать значение.

Sub Del_SubStr() Dim sSubStr As String ‘искомое слово или фраза(может быть указанием на ячейку) Dim lCol As Long ‘номер столбца с просматриваемыми значениями Dim lLastRow As Long, li As Long Dim lMet As Long Dim arr sSubStr = InputBox(“Укажите значение, которое необходимо найти в строке”, “Запрос параметра”, “”) If sSubStr = “” Then lMet = 0 Else lMet = 1 lCol = Val(InputBox(“Укажите номер столбца, в котором искать указанное значение”, “Запрос параметра”, 1)) If lCol = 0 Then Exit Sub lLastRow = ActiveSheet.UsedRange.Row – 1 + ActiveSheet.UsedRange.Rows.Count arr = Cells(1, lCol).Resize(lLastRow).Value Application.ScreenUpdating = 0 Dim rr As Range For li = 1 To lLastRow ‘цикл с первой строки до конца If -(InStr(arr(li, 1), sSubStr) > 0) = lMet Then If rr Is Nothing Then Set rr = Cells(li, 1) Else Set rr = Union(rr, Cells(li, 1)) End If End If Next li If Not rr Is Nothing Then rr.EntireRow.Delete Application.ScreenUpdating = 1 End Sub

Если значение sSubStr не будет указано, то будут удалены строки, ячейки указанного столбца которых, пустые.
Данный код необходимо поместить в стандартный модуль. Вызвать с листа его можно нажатием клавиш Alt + F8 , после чего выбрать Del_SubStr и нажать Выполнить. Если в данном коде в строке
If -(InStr(Cells(li, 1), sSubStr) > 0) = lMet Then
вместо = lMet указать <> lMet , то удаляться будут строки, не содержащие указанное для поиска значение. Иногда тоже удобно.
Но. Данный код просматривает строки на предмет частичного совпадения указанного значения. Например, если Вы укажете текст для поиска “отчет”, то будут удалены все строки, в которых встречается это слово(“квартальный отчет”, “отчет за месяц” и т.д.). Это не всегда нужно. Поэтому ниже приведен код, который будет удалять только строки, указанные ячейки которых равны конкретно указанному значению:

Sub Del_SubStr() Dim sSubStr As String ‘искомое слово или фраза(может быть указанием на ячейку) Dim lCol As Long ‘номер столбца с просматриваемыми значениями Dim lLastRow As Long, li As Long Dim arr sSubStr = InputBox(“Укажите значение, которое необходимо найти в строке”, “Запрос параметра”, “”) lCol = Val(InputBox(“Укажите номер столбца, в котором искать указанное значение”, “Запрос параметра”, 1)) If lCol = 0 Then Exit Sub lLastRow = ActiveSheet.UsedRange.Row – 1 + ActiveSheet.UsedRange.Rows.Count arr = Cells(1, lCol).Resize(lLastRow).Value Application.ScreenUpdating = 0 Dim rr As Range For li = 1 To lLastRow ‘цикл с первой строки до конца If CStr(arr(li, 1)) = sSubStr Then If rr Is Nothing Then Set rr = Cells(li, 1) Else Set rr = Union(rr, Cells(li, 1)) End If End If Next li If Not rr Is Nothing Then rr.EntireRow.Delete Application.ScreenUpdating = 1 End Sub

Здесь так же, как и в случае с предыдущим кодом можно заменить оператор сравнения( Cells(li, lCol) = sSubStr ) с равно на неравенство( Cells(li, lCol) <> sSubStr ) и тогда удаляться будут строки, значения ячеек которых не равно указанному.

УДАЛЕНИЕ СТРОК НА ОСНОВАНИИ СПИСКА ЗНАЧЕНИЙ(МНОЖЕСТВЕННЫЕ КРИТЕРИИ)
Иногда бывают ситуации, когда необходимо удалить строки не по одному значению, а по нескольким. Например, если строка содержит или Итог или Отчет. Ниже приведен код, при помощи которого можно удалить строки, указав в качестве критерия диапазон значений.
Значения, которые необходимо найти и удалить перечисляются на листе с именем “Лист2”. Т.е. указав на “Лист2” в столбце А(начиная с первой строки) несколько значений – они все будут удалены. Если лист называется иначе(скажем “Соответствия”) в коде необходимо будет “Лист2” заменить на “Соответствия”. Удаление строк происходит на активном в момент запуска кода листе. Это значит, что перед запуском кода надо перейти на тот лист, строки в котором необходимо удалить.

Sub Del_Array_SubStr() Dim sSubStr As String ‘искомое слово или фраза Dim lCol As Long ‘номер столбца с просматриваемыми значениями Dim lLastRow As Long, li As Long Dim avArr, lr As Long Dim arr lCol = Val(InputBox(“Укажите номер столбца, в котором искать указанное значение”, “Запрос параметра”, 1)) If lCol = 0 Then Exit Sub Application.ScreenUpdating = 0 lLastRow = ActiveSheet.UsedRange.Row – 1 + ActiveSheet.UsedRange.Rows.Count ‘заносим в массив значения листа, в котором необходимо удалить строки arr = Cells(1, lCol).Resize(lLastRow).Value ‘Получаем с Лист2 значения, которые надо удалить в активном листе With Sheets(“Лист2”) ‘Имя листа с диапазоном значений на удаление avArr = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp)) End With ‘удаляем Dim rr As Range For lr = 1 To UBound(avArr, 1) sSubStr = avArr(lr, 1) For li = 1 To lLastRow ‘цикл с первой строки до конца If CStr(arr(li, 1)) = sSubStr Then If rr Is Nothing Then Set rr = Cells(li, 1) Else Set rr = Union(rr, Cells(li, 1)) End If End If DoEvents Next li DoEvents Next lr If Not rr Is Nothing Then rr.EntireRow.Delete Application.ScreenUpdating = 1 End Sub

Чтобы код выше удалял строки не по точному совпадению слов, а по частичному(например, в ячейке записано “Привет, как дела?”, а в списке есть слово “привет” – надо удалить, т.к. есть слово “привет”), то надо строку:

If CStr(arr(li, 1)) = sSubStr Then

заменить на такую:

If InStr(1, arr(li, 1), sSubStr, 1) > 0 Then

‘процедура оставляет в листе только те значения, которые перечислены в списке Sub LeaveOnlyFoundInArray() Dim sSubStr As String ‘искомое слово или фраза Dim lCol As Long ‘номер столбца с просматриваемыми значениями Dim lLastRow As Long, li As Long Dim avArr, lr As Long Dim arr Dim IsFind As Boolean lCol = Val(InputBox(“Укажите номер столбца, в котором искать указанное значение”, “www.excel-vba.ru”, 1)) If lCol = 0 Then Exit Sub Application.ScreenUpdating = 0 lLastRow = ActiveSheet.UsedRange.Row – 1 + ActiveSheet.UsedRange.Rows.Count ‘заносим в массив значения листа, в котором необходимо удалить строки arr = Cells(1, lCol).Resize(lLastRow).Value ‘Получаем с Лист2 значения, которые надо удалить в активном листе With Sheets(“Лист2”) ‘Имя листа с диапазоном значений на удаление avArr = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp)) End With ‘удаляем Dim rr As Range For li = 1 To lLastRow ‘цикл с первой строки таблицы до конца IsFind = False For lr = 1 To UBound(avArr, 1) ‘цикл по списку значений на удаление sSubStr = avArr(lr, 1) If InStr(1, arr(li, 1), sSubStr, 1) > 0 Then IsFind = True End If DoEvents Next lr ‘если значение таблицы не найдено в списке – удаляем строку If Not IsFind Then If rr Is Nothing Then Set rr = Cells(li, 1) Else Set rr = Union(rr, Cells(li, 1)) End If End If DoEvents Next li If Not rr Is Nothing Then rr.EntireRow.Delete Application.ScreenUpdating = 1 End Sub

Чтобы код выше сравнивал значения таблицы со значениями списка по точному совпадению слов, а не по частичному, то надо строку:

If InStr(1, arr(li, 1), sSubStr, 1) > 0 Then

заменить на такую:

If CStr(arr(li, 1)) = sSubStr Then

Для всех приведенных кодов можно строки не удалять, а скрывать. Для этого надо строку:

If Not rr Is Nothing Then rr.EntireRow.Delete

заменить на такую:

If Not rr Is Nothing Then rr.EntireRow.Hidden = True

По умолчанию все коды начинают просмотр строк с первой по последнюю заполненную на листе. И если необходимо удалять строки не с первой или не по последнюю, то надо внести корректировки в эту строку:

For li = 1 To lLastRow ‘цикл с первой строки до конца

1 – это первая строка; lLastRow – определяется автоматически кодом и равна номеру последней заполненной строки на листе. Если надо начать удалять строки только с 7-ой строки(например, в первых 6-ти шапка), то код будет выглядеть так:

For li = 7 To lLastRow ‘цикл с седьмой строки до конца

А если надо удалять только с 3-ей по 300-ю, то код будет выглядеть так:

For li = 3 To 300 ‘цикл с третьей строки до трехсотой

Статья помогла? Поделись ссылкой с друзьями!

Источник: www.excel-vba.ru

Выжимка

Описание

Этот инструмент позволяет удалить лишние слова из запросов. Что такое лишние слова? Это такие слова которые не влияют на интент (а интент это желание пользователя выраженное запросом к поисковой системе). Например, если мы кластеризуем семантику для интернет магазина то скорее всего получим кластера полные запросов с продающими словами. Это слова «купить», «цена»,»в москве»,»интернет магазин»,»заказать» и т.д. Это нужная нам семантика, но наряду с ней в кластере могут попасться запросы которые притянулись в кластер неправильно. Кластеризация вообще штука не идеальная. Все зависит от проработанности документов в топе другими оптимизаторами, от порога и алгоритма кластеризации. Иногда кластера получаются очень грязными. Задача оптимизатора — добиться того чтобы в одном кластере запросов был один интент. Можно читать все запросы подряд. А можно читать выжимку этих запросов. Так гораздо удобнее. Инструмент состоит из двух текстовых полей. В левое поле пишутся слова подлежащие удалению, причем , дописывать их до конца не обязательно. В правое поле пишутся слова которые нужно удалить целиком. Обычно это предлоги, союзы и сокращения , например «см» (сантиметр). Кроме этого есть 3 галочки которые позволяют делать постобработку выжимки:

  • Привести каждое слово к лексемме (помогает избавиться от словоформ)
  • Перевести в транслит (помогает в случае с адидас и adidas)
  • Поставить слова в алфавитном порядке (избавляемся от перестановок в запросах)

12 комментариев к “ Выжимка ”

Иногда инструмент «выжимка» не работает — выжимает

500 строк и потом тупо останавливается. Логику ошибки я проследить не могу, соответственно: из-за чего это может быть? Т.е. банально до того, что: утром выживает за 1,5 минуты 10000 строк; а днем в этом-же файле на аналогичной операции обрабатывает 500 строк и останавливается. Дальше ничего не происходит.

Пустая строка в файле, я балбес — можно удалять коммент.

Давайте оставим коммент, он хороший.

Здравствуйте! А можно пояснить как правильно употреблять список слов в столбике Слова? По умолчанию он вот какой: купи
цен интерне магаз заказ лучш моск хорош стиль фото стоим — это как бы базовый коммерческий кластер Москвы, а если услуга или скажем информационный, какими принципами и если можно, на примере пояснить взять кластер — «авто юрист Воронеж», и допустим «экскурсионная поездка на Горный алтай»

Принцип такой: те слова выжимаем которые не влияют на интент в пределах одного кластера.
Я не силен в тематике автоюристов, но могу попробовать догадаться.

авто юрист консультации
авто юрист консультации по телефону
авто юрист онлайн
авто юристы воронеж
авто юристы онлайн консультация
помощь авто юриста
купля продажа авто юрист
телефон авто юриста
юрист авто

Сразу выжмем слова : авто, юрист, воронеж, консультация, помощь

Выделится у нас в этом кластере 3 интента: Консультация по телефону, консультация онлайн и автоюрист при купле продаже.

Не могу понять, почему у меня не запускается процесс Выжимки?
Ключи скопировал из столба А в столбец В, далее нажимаю Выжимка… вроде бы должно окошко открываться куда вписывать слова и предлоги для удаления, так? А у меня этого не происходит.
Уже несколько раз всю надстройку сносил, переустанавливал заново — та же картина.
Что я делаю не так?

Встречал такую проблему только 1 раз. С чем связано сказать трудно. Но лечится только переустановкой Microsoft Office.

Странно, что до сих пор не исправлен баг с предлогами. О нём неизвестно (в чём сильно сомневаюсь) или его по каким-то причинам не исправляют (это «фича»/нет возможности исправить)?
Баг состоит в том, что если предлог стоит в конце текстовой строки (ячейки), то он не будет удалён.

К примеру, есть такие запросы:
анализ на флору
анализ на флору срочно
И чисто для примера представим, что нужно удалить только слово «флору». В выжимке делаем предлог «флору», но в результате получаем такие строки:
анализ на флору
анализ на срочно

Большое спасибо за помощь, я этот баг никак не мог отловить очень давно. Я знал что он есть, но никак не мог понять что это когда предлог последнее слово в строке.
Ваш свежий взгляд очень кстати. Исправил, можете обновиться.

Снова здравствуйте)
Спасибо за оперативное исправление бага с предлогами.
Есть ещё один баг (или фича?), состоящий в том, что если слово, которое нужно выжать, окажется частью другого, более длинного/сложного слова, то длинное/сложное слово окажется обрублено.

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

В первом запросе всё ок, удалилось слово «подготовка», как и ожидалось.
Во втором запросе «подготовк» оказалась частью слова «переподготовка», и скрипт отрубил слово «подготовка», оставив просто «пере».
В третьем запросе скрипт сперва увидел слово «омск» в слове «томск», сделал его просто буквой «т», и не дал возможности сработать слову «томск» для полного удаления.
В четвёртом запросе нормально удалилось слово «порядок», но слово «казан» (вставленное с расчётом на удаление вариаций названия города Казань) оказалось частью слова «оказание», из-за чего в итоге осталось простое «о помощи по функциональной диагностике».

На мой взгляд, должна быть проверка на то, что найденное слово в строке начинается со слова на выжимку. То есть по слову «подготовк»: «подготовка» — удалить, «переподготовка» — оставить. И как вариант — добавить опцию на полное удаление сложного слова, при включении которой «переподготовка» и подобные ей случаи тоже будут удаляться полностью.

Исправлено в версии 1.4.6.
Спасибо за то что нашли ошибку.

Источник: seo-excel.ru

Добавить комментарий

Adblock
detector