
Я хотел бы вручную скопировать данные из несмежных строк (или столбцов) Excel и вставить их в текстовый редактор.
Пока я не нашел способа сделать это эффективно. (Я использую Excel Home/Student 2013.)
Например:
- В Excel выберите (Ctrl+щелчок левой кнопкой мыши) строки
1
,5
,8
, и10
- Копировать ( Ctrl+ C)
- В текстовом редакторе вставьте ( Ctrl+ V) — вы получите ВСЕ данные из строк
1
в10
На данный момент существует громоздкое решение:
- В Excel выберите (Ctrl+щелчок левой кнопкой мыши) строки
1
,5
,8
, и10
- Копировать ( Ctrl+ C)
- Вставьте ( Ctrl+ V) в другое место Excel (например, пустой дополнительный лист). Вы получите 4 смежные строки с данными только из строк
1
,5
,8
, и10
- Копировать ( Ctrl+ C) еще раз
- В текстовом редакторе Ctrl+ V- вы получите данные из строк
1
,5
,8
, и10
Невероятно, что это кажется невозможным после более чем 30 лет разработки Excel. Есть ли причина, по которой нельзя сделать это напрямую?
Может быть, все же есть какой-то трюк, позволяющий сделать это более эффективно?
Есть идеи?
решение1
Это преднамеренная «фича».
Скрытые/невыбранные данные также копируются, поскольку в предыдущие десятилетия миллиарды пользователей жаловались на то, что они упустили некоторые данные из-за того, что какой-то фильтр все еще был включен и они его не видели.
Лично я согласен с вашими желаниями - у меня та же проблема все время. Но нам приходится жить с ограничениями миллионов пользователей, которые не совсем уверены в том, что они делают, поэтому это реализовано таким образом.
решение2
Причина немного глубже.
Есть много вещей, которые хочется, чтобы электронная таблица делала, включая копирование или перенос информации в нее, в нее и из нее. Иногда "просто так" и в любой электронной таблице, иногда в конкретной таблице из-за функций ее программы или даже выбора, который вы сделали сами. И Excel поддерживает некоторые/многие из этих вещей.
Однако информация, которую он должен переносить вместе с данными, как часть данных/форматирования и т. д., или для обеспечения полного спектра применений ВНУТРИ Excel, в которые вы, возможно, захотите ее поместить, очень часто намного больше, чем может вместить буфер обмена Windows и при этом оставаться «верным» своей собственной концепции.
Буфер обмена на самом деле не различает один бит текстовой информации, представляющий данные, которые Excel может поместить в него, и текстовую информацию, представляющую, возможно, форматирование, которое Excel может поместить в него. Форматирование, в частности, будет частично поддерживаться, частично нет. Буфер обмена будет передавать информацию о шрифте, например, и, вероятно, имеет способ узнать, что часть текста является чем-то подобным. Excel может передавать ему свое собственное копирование в требуемой форме. Но, возможно, у буфера обмена нет способа пометить информацию «Центрировать по выделенному» или «Объединить ячейки» стандартным способом, который другие программы могут распознать и использовать должным образом или отбросить.
Excel должен хранить эту информацию в своем Copy-ing, чтобы иметь возможность использовать ее в своих собственных операциях. Но в то же время ее нельзя передать в буфер обмена, не став странным и случайным текстом, добавленным к действительно желаемому тексту. (Обратное/следствие/что угодно из этого наблюдается при копировании ячейки для вставки ее содержимого, скажем, в поля входа на веб-сайт, и Excel добавляет что-то, вызывающее возврат каретки/перевод строки, которые могут быть проигнорированы или нет.)
Итак, Excel использует свой внутренний буфер обмена. Он берет любую «истинную» копию, которую Excel считает сделанной, с любой информацией, которая, по его мнению, может понадобиться, и удерживает ее до тех пор, пока не будет выполнена вставка. Если вставлять в Excel, а часто и в другие программы Office, хотя часто и нет, информация может быть использована полностью. В Excel можно увидеть, как программа извлекает данные двух ячеек и выбранное вами форматирование Ctrl-Click
и решает, как поместить их туда, куда вы их вставляете. Таким образом, вы получаете две ячейки и их форматирование с помощью простой вставки, и хотя это МОЖНО было бы написать, чтобы сохранить их относительное расположение, скажем, строки 2 и 6, они решили, что такая вещь должна быть вставлена, как будто изначально смежная. Ну... выбор. (Полезно для меня так же часто, как и раздражает. Я полагаю, что для других это по-разному.)
В ТО ЖЕ ВРЕМЯ Excel записывает в буфер обмена Windows (отличный от его собственного внутреннего «буфера обмена») то, что программисты посчитали нужным (и возможным) записать в него. Они не обязательно продумали все вариации на каждую тему. В вашем примере они явно посчитали, что для использования вне Excel будет лучше, если все смежные данные будут отмечены начальными и конечными ячейками. Или это и/или было стандартной мыслью в то время. Или это вообще никогда не задумывалось. Так много возможностей.
(Кстати, этот внутренний/промежуточный «буфер обмена» и является источником трудностей, приводящих к странному сообщению об ошибке, гласящему, что произошла ошибка с буфером обмена, но вы все равно можете вставлять данные в другие программы.)
Так что, скорее всего, это не «баг», а скорее выбранная функция, случайная функция или вещь, о которой никогда не думали, поэтому она не может быть правильной («фича») ИЛИ неправильной («баг»).
Однако очевидно, что Excel знает, что если строка, скажем, нежелательна hidden/filtered out/set to 0 height
в Paste, даже если она вставлена вне самого Excel. Возможно, мысль была в том, что «позитивный шаг» для указания того, что эти вещи нежелательны, был достаточно хорош, чтобы отправить пакет данных в буфер обмена, который не включает их. Все эти ситуации могли бы быть фактически достигнуты путем установки каждой из них высоты строки на 0, и поэтому, возможно, Excel ищет эту характеристику. Использование Ctrl-Click
для пометки определенных ячеек для копирования, приходящее годы и годы спустя, может просто не активировать это удаление перед записью в буфер обмена. Может быть, все так просто.
В любом случае, вы можете сделать запись в текущем веб-инструменте UserVoice. Очень долгое время казалось, что люди Excel просто издавали приятные звуки, а затем полностью игнорировали любую запись. Но недавние изменения показывают, что они обращали внимание, просто им требуется 10-20 лет, чтобы отреагировать на них. (Вздох...) Но никто не знает. Это место ЯВЛЯЕТСЯ официальным местом для таких предложений, если только ваш работодатель (или вы) не платите кучу денег за подписку на поддержку.