1

Описание

У меня есть файл CSV с 6000+ строк в нем. У меня есть список около 300 слов, каждое из которых появляется только в одной строке файла CSV.

проблема

Как извлечь из списка только строки, содержащие слово, чтобы у меня осталось около 300 строк; по одному на каждое слово в списке.

Пример:

    user_a   info 1   ...   ...
    user_b   info 2   ...   ...
    user_c   info 3   ...   ...
    user_d   info 4   ...   ...
    user_e   info 4   ...   ...
    user_f   info 4   ...   ...
    user_g   info 4   ...   ...
    ...      ...      ...   ...
    ...      ...      ...   ...

Выше у меня есть список: «user_a, user_c, user_g». Как бы получить CSV только с:

    user_a   info 1   ...   ...
    user_c   info 3   ...   ...
    user_g   info 4   ...   ...

2 ответа2

3

Я знаю, что просто опубликовать ссылку не очень полезно, но там много текста и картинок, и я не хочу писать все это здесь. D = http://www.contextures.com/xladvfilter01.html Это простой способ, вам просто нужно сначала составить список того, что вы хотите. Посмотрите на "Примеры критериев расширенного фильтра Excel". Я думаю, что это может быть быстрый и простой способ сделать то, что вы хотите (и вы можете опубликовать его на другом листе, а затем сохранить отфильтрованный список как новый .csv). Надеюсь, это поможет!

3

Я предположил, что ваши 6000 строк находятся в рабочем листе под названием "Записи" и что данные начинаются со строки 2 и столбца А. На другом листе скопируйте свой список в столбце A в строках со 2 по 300. Теперь в столбце B, начиная со строки 2, скопируйте эту формулу в строку 300 и переместите столько столбцов, сколько необходимо:

=INDEX(Records!B$2:B$7,MATCH($A2,Records!$A$2:$A$7,0))

Я предполагаю, что каждое слово в вашем списке образует все содержимое ячейки, например, "user_a" появляется отдельно в ячейке, но я не совсем уверен, что это так. Если вместо этого ячейки на листе "Записи" содержат значения, такие как "прочее", "user_a more stuff", то добавьте подстановочные знаки в формулу следующим образом:

=INDEX(Records!B$2:B$7,MATCH("*" & $A2 & "*",Records!$A$2:$A$7,0))

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .