powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / можно ли убрать повторяющийся текст в ячейке Excel 2007
10 сообщений из 10, страница 1 из 1
можно ли убрать повторяющийся текст в ячейке Excel 2007
    #39912562
Guest1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть ли возможность автоматически определить и убрать повторяющийся текст в ячейке Excel 2007 ?

Например, в ячейках записано

оказание услугоказание услугоказание услугоказание услуг - в ячейку перенести оказание услуг (первая ячейка)
выполработвыполработвыполработ - в ячейку перенести выполработ (вторая ячейка)
противопожаные мерыпротивопожарные меры - в ячейку перенести противопожарные меры (третья ячейка)


текст, количество повторений, наличие или отсутствие пробелов - разное в каждой ячейке
Спасибо.
...
Рейтинг: 0 / 0
можно ли убрать повторяющийся текст в ячейке Excel 2007
    #39912566
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Guest1
наличие или отсутствие пробелов
а можно вот это расшифровать? Если нет пробелов - как разделяется текст и разделяется ли вообще? Я к тому, что разделителем-то для определения конкретного слова что считать?
Нет, я вчитался в приведенный текст. Но сомнения берут, что такое в принципе возможно без конкретных разделителей. Вот хотя бы это: выполработ. Это что за речевой оборот? Тут не каждый мозгом дойдет, что это можно как-то воспринять, а уж ПК, думаю, точно не осилит, если только ИИ не подключить...
Т.е. по факту, если нет понимания где текст начинается и где заканчивается - то вряд ли найдется решение автоматическое для таких данных.
...
Рейтинг: 0 / 0
можно ли убрать повторяющийся текст в ячейке Excel 2007
    #39912576
Guest1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
The_Prist,
то есть пробелов может и не быть там, где они должны быть.
Но повторение текста присутствует. То есть задача сводится к тому - может ли Excel2007 понять что в ячейке есть повторяющаяся часть и выделить её. Думаю, что задача эта не решается, так как для применения формул нет информации, кроме той, что есть повторяющаяся, неизвестно какая часть текста.
...
Рейтинг: 0 / 0
можно ли убрать повторяющийся текст в ячейке Excel 2007
    #39912592
MX-9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Guest1,

VBA вполне решает

-- вырезать половину текста и примерить на входимость вырезки в строку дважды

-- в цикле укорачивать вырезку шагом -1 до 5 символов и примерять каждый раз
- при наличии двух вхождений вырезки стереть лишние

-- если повторы идут не с начала строки - вырезку сдвигать в цикле с первого по серединный символ

===========
...
Рейтинг: 0 / 0
можно ли убрать повторяющийся текст в ячейке Excel 2007
    #39912596
Guest1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MX-9,
повторы всегда идут с начала строки.
...
Рейтинг: 0 / 0
можно ли убрать повторяющийся текст в ячейке Excel 2007
    #39912609
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Guest1
повторы всегда идут с начала строки.

Ну дык берёшь, значитса, перву букву, да ищешь её дальше... не нашёл? нету, значить, периода... нашёл? смотришь, не за серединой ли, ежли да, то нету повторов, а ежли ещё нет, дык берёшь кусок от начала до этой буквы, её не включаючи, да проверяешь, не повтор ли, ежли повтор - задача решена, ежли нет - возвращаешься и ищешь следующий раз ту же букву.
...
Рейтинг: 0 / 0
можно ли убрать повторяющийся текст в ячейке Excel 2007
    #39912612
MX-9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Guest1,

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
[/SRC]Sub minimText()
Dim text As String, s As String, x, xx, L

For Each c In ActiveSheet.UsedRange.Cells
    text = CStr(c.Value)
    If Len(text) > 5 Then
    For L = Len(text) \ 2 To 5 Step -1
        s = Left$(text, L)
        For xx = 1 To 999
            x = InStr(2, text, s)
            If x > 1 Then text = Mid$(text, x, 9999) Else Exit For
        Next
    Next
    c.Value = text
    End If
Next
End Sub[SRC VB]
...
Рейтинг: 0 / 0
можно ли убрать повторяющийся текст в ячейке Excel 2007
    #39912620
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Guest1
повторы всегда идут с начала строки
это уже что-то - на этом можно рабочий вариант построить, если учитывать, что то, что в самом начале неизбежно повторяется и далее и только это повторяется и нет другого текста.
...
Рейтинг: 0 / 0
можно ли убрать повторяющийся текст в ячейке Excel 2007
    #39912625
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот, накидал функцию:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Function RemoveFstDuplicatesFromCell(sTxt$) As String
    If sTxt = "" Then
        RemoveFstDuplicatesFromCell = Empty
        Exit Function
    End If
    Dim s, lcnt&, li&
    For li = 1 To Len(sTxt)
        s = s & Mid(sTxt, li, 1)
        If Mid(sTxt, Len(s) + 1, Len(s)) = s And Len(s) > 3 Then
            Exit For
        End If
    Next
    lcnt = (Len(sTxt) - Len(Replace(sTxt, s, ""))) / Len(s)
    RemoveFstDuplicatesFromCell = Replace(sTxt, s, "", 1, lcnt - 1)
End Function


Обращаю внимание на этот кусок: Len(s) > 3. Он отвечает за ложное срабатывание определения текста, если в нем мало букв(например, чтобы за совпадение не были приняты только первые буквы "сс" в слове "ссора"). Возможно, надо поставить не 3, а 2, но это думаю и 3 более чем неплохо справится.
Так же обращаю внимание, что в ячейке может находиться и другой текст, но удалены повторы будут только того, который найден в самом начале. Например, из текста "оказание услугоказание услугоказание услугоказание услуг и т.д" получится текст "оказание услуг и т.д"
...
Рейтинг: 0 / 0
можно ли убрать повторяющийся текст в ячейке Excel 2007
    #39912637
Guest1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
The_Prist,
спасибо за помощь, попробую

в ячейке кроме повторов нет другого текста, то есть, например, n-ое количество символов начинаются в ячейке и с n+1-го символа повторяется текст этих n символов полностью
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / можно ли убрать повторяющийся текст в ячейке Excel 2007
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]