В Excel / notepad, как удалить строку с одним значением?

#excel

#excel

Вопрос:

Текущий входной файл имеет следующий формат

 20934 drinks.txt 

20934 latte.txt

20934 flatwhite.txt

20934 expresso.txt

20934

20935 drinks.txt 

20935 latte.txt

20935 flatwhite.txt

20935

20936 drinks.txt 

20936 latte.txt

20936 flatwhite.txt

20936
 

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

т.е. удалить строку 20934 20935 20936..

поскольку эти строки имеют только 1 значение. Конечный вывод должен быть таким

 20934 drinks.txt 

20934 latte.txt

20934 flatwhite.txt

20934 expresso.txt

20935 drinks.txt 

20935 latte.txt

20935 flatwhite.txt

20936 drinks.txt 

20936 latte.txt

20936 flatwhite.txt
 

Комментарии:

1. Какую версию Excel вы используете?

2. Формула / vba не требуется. Просто отфильтруйте Text Filter - Contains и используйте Space в качестве cirteria, а затем удалите выбранные строки?

3. Часть excel/notepad довольно запутанная. Пожалуйста, уточните, хотите ли вы записать нужные данные из текстового файла в Excel диапазон столбцов или из Excel диапазона столбцов в текстовый файл, или если вам требуется что-то еще.

Ответ №1:

С ExcelO365помощью приведенной ниже формулы вы можете попробовать FILTER() .

 =FILTER(A:A,RIGHT(A:A,4)=".txt")
 

введите описание изображения здесь

Комментарии:

1. Даже это решение работало без проблем. Я поддерживаю это решение, но не голосую из-за небольшой репутации 🙂 Спасибо

Ответ №2:

Я предполагаю, что два поля всегда разделены пробелом. Если у вас есть Office 365, вы можете использовать приведенную ниже формулу:

=FILTER(A1:A13,ISNUMBER(SEARCH(" ",A1:A13,1)))

Если у вас нет Office 365, вы можете попробовать приведенную ниже формулу массива, которую необходимо ввестиCTRLSHIFTENTER, одновременно нажав . Если все сделано правильно, Excel заключит его в фигурные скобки {}.

=INDEX(A:A,SMALL(IF(ISNUMBER(SEARCH(" ",A:A,1)),ROW(A:A),10^15),ROWS($A$1:A1)))

Комментарии:

1. Я попробовал это решение, и оно сработало. Что означает 10 ^ 15?

2. @Amelia, это число, которое больше, чем количество строк в Excel. В принципе, можно легко использовать 10 ^ 7 вместо 10 ^ 15. После исчерпания допустимых данных это приведет к ошибке и, следовательно, к остановке. Вы можете обернуть его в IFERROR, например IFERROR(abovepostedformula,"") , если вы не хотите, чтобы ячейки отображали ошибки.