Страницы: 1
RSS
Удаление ненужных значений из массива данных
 
Доброго всем дня. Подскажите пожалуйста, какой формулой можно получить данные из массива. см. файл Help
Нужны только слова начинающиеся со знака # а также цифры (охват) без знака #, нужные данные в массиве выделила цветом.
P.S. Благодарю и заранее извиняюсь если похожий вопрос был, я вроде прочесала темы и нашла похожие, но там не учтены нюансы которые есть в моей таблице.
 
Мари, здравствуйте
Файла нет
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
И ненужные - это какие? Как понять задачу по такому названию темы?
Чтение правил форума при регистрации  - это как вакцина против замечаний и подколок.
 
Цитата
vikttur: это как вакцина
О — ща начнётся
Изменено: Jack Famous - 19.01.2022 14:45:49
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Простите-извините это я не со зла... а по неуменью.  
 
Предложите название темы. Заменят модераторы
 
Прикрепите пример без разделения по столбцам или таков оригинал?
Изменено: Тимофеев - 20.01.2022 08:50:27
 
Уверен, что предложенные (если будут) решения не подойдут из-за некорректности и/или ограниченности примера, поэтому не вижу смысла даже начинать  :D

Мари, пробуйте
Анализ текста регулярными выражениями (RegExp) в Excel
и/или Регулярные выражения (RegExp) в Power Query
Изменено: Jack Famous - 20.01.2022 09:12:47
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Для примера вспомогательный массив и дальше крутить
Код
Тэг:
=ПОИСК("#*</div";2:2;1)
Потом уже отсекать с конца </div - выдаст один нужный вариант
Охват:
=ПОИСК("*</span";2:2;1)
отсекать с конца </span - выдаст 2 варианта сжать пробелы и искать числа
Для 365:
ТЭГ:
=ПОДСТАВИТЬ(ФИЛЬТР(ТРАНСП(2:2);ЕСЛИОШИБКА(ПОИСК("#*</div";ТРАНСП(2:2);1);"")=1);"</div";"")
Охват:
=--ПОДСТАВИТЬ(ФИЛЬТР(ФИЛЬТР(ТРАНСП(2:2);ЕСЛИОШИБКА(ПОИСК("*</span";ТРАНСП(2:2);1);"")=1);
--ЕЧИСЛО(--ЛЕВБ(ФИЛЬТР(ТРАНСП(2:2);ЕСЛИОШИБКА(ПОИСК("*</span";ТРАНСП(2:2);1);"")=1);1))=1);"</span";"")
Изменено: Тимофеев - 20.01.2022 09:55:22
 
Добрый день! Если считать пример исчерпывающим - то можно макросом:
Код
Sub test()
    Dim sh As Worksheet, shres As Worksheet, c As Integer, r As Integer

    Set sh = Worksheets("Лист 1")
    Set shres = Worksheets("Итог")
    
    r = 1
    For c = 1 To sh.Cells(2, sh.Columns.Count).End(xlToLeft).Column
        If sh.Cells(2, c) Like "[#]*</div" Then
            r = r + 1
            shres.Cells(r, 1) = Left(sh.Cells(2, c), Len(sh.Cells(2, c)) - 5)
        ElseIf sh.Cells(2, c) = " публикаций</span" Then
            shres.Cells(r, 2) = Replace(Replace(sh.Cells(2, c - 1), "</span", ""), " ", "")
        End If
    Next c
    MsgBox "done"
End Sub
Однако, меня преследует мысль, что изначально это был какой-то файл, который разбили по столбцам по разделителю ">". Если это так - возможно с исходным файлом было бы работать проще/правильнее
 
Вас не зря преследуют эта мысль, изначально да это вставка куска скопированного кода, просто я сначала начала делать по варианту исходя из "урока", но данные кода поменяли уже, поэтому формула казалась нерабочей.
Я почему то подумала, что проще оставить данные уже с разбивкой, но видимо еще больше запутала всех :oops:
Спасибо вам огромное за помощь!
 
Цитата
vikttur написал: И ненужные - это какие? Как понять задачу по такому названию темы?
Предложите название темы. Заменят модераторы
Страницы: 1
Наверх