Функция скопировать если в excel

Как скопировать ячейки, если столбец содержит определенное значение / текст в Excel?

Предположим, у вас есть длинный список данных, и теперь вы хотите найти и скопировать ячейки, содержащие определенное значение или текст в Excel, как быстро это сделать? Здесь мы предлагаем вам три метода копирования ячеек, если столбец содержит определенное значение или текст в Excel.

  • Скопируйте ячейки, если столбец содержит определенное значение / текст с помощью команды «Фильтр»
  • Скопируйте ячейки, если столбец содержит определенное значение / текст с помощью команды поиска
  • Скопируйте ячейки, если столбец содержит определенное значение/текст с Kutools for Excel

 Скопируйте ячейки, если столбец содержит определенное значение / текст с помощью команды «Фильтр»

Команда «Фильтр» может помочь нам легко отфильтровать ячейки, соответствующие определенным критериям в столбце, поэтому мы можем легко скопировать эти конкретные ячейки в Excel.

1. Выберите столбец, в который вы будете копировать ячейки, если столбец содержит определенное значение или текст, а затем щелкните значок Данные > Фильтр.

2. Теперь щелкните стрелка в левой части первой ячейки выбранного столбца, а затем щелкните значок Текстовые фильтры > Комплект из выпадающего списка.

3. В открывшемся диалоговом окне Custom AutoFilter введите конкретный текст в поле за содержит и нажмите OK кнопку.

Теперь все ячейки, содержащие определенный текст, отфильтровываются сразу.

4. Выберите все отфильтрованные ячейки в определенном столбце и скопируйте их, нажав Ctrl + C одновременно.

5. Выберите пустую ячейку и вставьте эти ячейки, нажав Ctrl + V одновременно.

Легко выбрать / выделить / скопировать всю строку, если столбец содержит то же значение, что и значения в другом списке в Excel

Kutools for ExcelАвтора Выберите одинаковые и разные ячейки Утилита позволяет пользователям Excel сравнивать два столбца, а затем легко выбирать / копировать / выделять целые строки на основе одинаковых или разных значений.

объявление выбрать целые строки на основе одинаковых значений

  Скопируйте ячейки, если столбец содержит определенное значение / текст с помощью команды поиска

Этот метод поможет вам найти все ячейки, содержащие определенное значение или текст, с помощью команды «Найти», а затем легко скопировать все найденные ячейки.

1. Выберите столбец, в который вы будете копировать ячейки, если столбец содержит определенное значение или текст.

2. Откройте диалоговое окно «Найти и заменить», нажав кнопку Ctrl + F тем временем, затем в диалоговом окне «Найти и заменить» введите конкретный текст в поле Найти то, что и нажмите Найти все кнопку.

Внимание: Вы также можете открыть диалоговое окно «Найти и заменить», нажав Главная > Найти и выбрать > Найти.

Затем обнаруживаются все ячейки, содержащие определенные ячейки в определенном столбце, и они перечисляются в нижней части диалогового окна «Найти и заменить».

3. Выделите все найденные ячейки, нажав Ctrl + A ключи и закройте диалоговое окно «Найти и заменить». Теперь все ячейки, содержащие определенный текст, выделяются в определенном столбце.

4. Скопируйте всю выделенную ячейку, нажав Ctrl + C ключи, а затем выберите пустую ячейку и вставьте их, нажав Ctrl + A ключи.


  Скопируйте ячейки, если столбец содержит определенное значение/текст с Kutools for Excel

Kutools for Excel — Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная пробная версия 30-день, кредитная карта не требуется! Get It Now

1. Выберите указанный столбец и щелкните Кутулс > Выберите > Выберите специальные ячейки.

2. В открывшемся диалоговом окне Select Special Cells,

(1) В Тип выбора раздел, проверка Ячейка вариант;
(2) В Конкретный тип раздел, щелкните первое поле и выберите Комплект из раскрывающегося списка, а затем введите указанный текст (в нашем случае введите сумма) в следующее поле;
(3) Щелкните значок Ok кнопка. Затем появляется вторая строка Select Specific Cells, показывающая, сколько ячеек выбрано. Щелкните значок OK чтобы закрыть его.

3. Теперь выбираются ячейки, содержащие определенное значение / текст. Нажмите Ctrl + C ключи для их копирования; выберите ячейку, в которую вы будете вставлять ячейки, и нажмите Ctrl + V ключи.

Kutools for Excel — Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная пробная версия 30-день, кредитная карта не требуется! Get It Now


 Демо: скопируйте ячейки, если столбец содержит определенное значение / текст в Excel


Статьи по теме


Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Всем добра.

Задача:

В некую таблицу скопировать все значения из столбца другой таблицы где значение справа равно некоторому.

Мысли:

Когда у меня первый раз спросили про такое, я ответил- фигушки, без макроса никак, по крайней мере для неопределенного количества найденных строк.

 Спустя время мне задали этот вопрос повторно и тут меня осенило — это не невозможно.

Итак в чем заключается мысль?, а мысль в доп столбце, в котором хранится номер позиции вхождения в некотором диапазоне, где начало диапазона определяется предыдущим.

на деле это выглядит так:
Искать будем значение из ячейки $B$5 (в этой ячейке динамический выпадающий список) в другом листе:

=ПОИСКПОЗ($B$5;ЛИСТ2!B:B;0)

ПоискПоз — ищет вхождения в диапазоне
Результат формулы = 8, т.е. восьмая строчка

Проверяем, и вправду так.

Последующие ячейки при расчете будут учитывать предыдущую:

=ПОИСКПОЗ($B$5;ДВССЫЛ(«Карт.сч.!R»&$C16+1&»C2:R[1000]C2»;ЛОЖЬ);0)+C16)

Во втором аргументе формулы ПоискПоз ( ДВССЫЛ(«Карт.сч.!R»&$C16+1&»C2:R[1000]C2»;ЛОЖЬ); ) формируется диапазон $B$0+предыдущее положение+1 т.е. R9C2:R1000C2
Т.о. мы исключаем уже найденную строку из массива для поиска.

В итоге вот такой формулой

ДВССЫЛ(«Карт.сч.!R»&C16&»C5»;ЛОЖЬ)

Мы получаем значение из пятой колонки строки номер 8, и так далее.

Это можно записать в одну ячейку, но в моем случае получается очень громоздкая конструкция:

=ЕСЛИОШИБКА(ЕСЛИ(ЕПУСТО(ДВССЫЛ(«Карт.сч.!R»&ЕСЛИОШИБКА(ПОИСКПОЗ(ДВССЫЛ(«$B»&СТРОКА()-B17-10;ИСТИНА);ДВССЫЛ(«Карт.сч.!R»&$C16+1&»C2:R[1000]C2″;ЛОЖЬ);0)+C16;»-«)&»C5″;ЛОЖЬ));»АВАНС «;»»)&ТЕКСТ(ДВССЫЛ(«Карт.сч.!R»&ЕСЛИОШИБКА(ПОИСКПОЗ(ДВССЫЛ(«$B»&СТРОКА()-B17-10;ИСТИНА);ДВССЫЛ(«Карт.сч.!R»&$C16+1&»C2:R[1000]C2″;ЛОЖЬ);0)+C16;»-«)&»C3″;ЛОЖЬ);»дд.ММ.гггг»);»»)

Для двойных/тройных условий в поиске предлагаю использовать доп колонку, в таблице поиска, с конкатенацией колонок.

Как скопировать значение одной ячейки в другую при условии

tench72

Дата: Среда, 05.12.2012, 01:15 |
Сообщение № 1

Группа: Пользователи

Ранг: Прохожий

Сообщений: 6


Репутация:

0

±

Замечаний:
0% ±


Здравствуйте уважаемые форумчане! У меня возникла проблема с созданием таблицы учета данных эл.счетчиков, ни как не могу сообразить как сделать копирование из одной ячейки в другую ячейку, при выполнении условия что в какой то другой ячейке (что то вроде кнопки) возникает ноль или единица, при этом если в «кнопочной» ячейке вписать значение «1», то копирование происходит, если «0», то ячейка остается не измененной, потому как в ней содержится тоже какое то нужное значение. Я все нарисовал в рисунке который прикрепил к сообщению. Я сначала подумал что все просто, функция ЕСЛИ(), условие: ячейка(кнопка)=1, то копировать из ячейки допустим А1 в ячейку В1, это все понятно, а вот когда условие не выполняется как в функции ЕСЛИ(), организовать операцию «ни чего не делать», то есть чтобы значение в ячейке В1 не изменялось, при значении ячейки кнопки =0, когда значение ячейки А1 может изменится или меняется???? Вот где собака зарыта:)
Буду очень признателен вам, а то уже всю голову поломал sad

К сообщению приложен файл:

1040326.jpg
(58.8 Kb)

Сообщение отредактировал tench72Среда, 05.12.2012, 01:15

 

Ответить

AlexM

Дата: Среда, 05.12.2012, 08:27 |
Сообщение № 2

Группа: Друзья

Ранг: Участник клуба

Сообщений: 4257


Репутация:

1046

±

Замечаний:
0% ±


Excel 2003

Картинка это хорошо, но файл все равно нужен. Тем более он у вас есть.
Думаю задачу можно решить макросом. Что может упростить работу с таблицей учета.
Например так.
Ячейки с 0 и 1 (кнопки) не нужны.
При вводе новых показаний на Лист1 В3 на Лист2 значение текущего показания копируется в ячейку предыдущего показания, а на место текущего копируется значение с Лист1 В3.
При использовании макроса алгоритм может быть практически любой.

К сообщению приложен файл:

tench72.xls
(24.5 Kb)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.

Сообщение отредактировал AlexMСреда, 05.12.2012, 10:42

 

Ответить

tench72

Дата: Среда, 05.12.2012, 12:40 |
Сообщение № 3

Группа: Пользователи

Ранг: Прохожий

Сообщений: 6


Репутация:

0

±

Замечаний:
0% ±


AlexM, Спасибо за ответ! Но есть одно Но я не профи в EXEL :(, и макросы писать не умею и как их писать, для каждой ячейки, или написав для одной потом копировать в остальные? А запускать макросы как, ручками, как в фотошопе? Вот в фотошопе я знаю как делать макросы и очень хорошо, а вот в EXEL, к сожалению нет.
А таблица учета на самом деле большая ну счетчиков много не менее 60!
Файла как такового нет, я его не сделал, только в пробном варианте для одного счетчика, как на картинке.
А что нельзя ли решить проблему с помощью формулы? Когда я использую формулу ЕСЛИ(), как сделать чтобы при выполнении условия ячейка копировалась, а при не выполнении условия, ни каких действий с ячейкой не производилось. Ну типа оператора NOP (нет операции) в ассемблере, нет ли таких функций или действий в EXEL? Если я в формуле вставляю ссылку на саму ячейку, то EXEL мне сообщает о циклической ссылке что не есть гуд sad

 

Ответить

Serge_007

Дата: Среда, 05.12.2012, 12:46 |
Сообщение № 4

Группа: Админы

Ранг: Местный житель

Сообщений: 15894


Репутация:

2623

±

Замечаний:
±


Excel 2016

Quote (tench72)

как сделать чтобы при выполнении условия ячейка копировалась

Никак

Quote (tench72)

нет ли таких функций или действий в EXEL?

Нет


ЮMoney:41001419691823 | WMR:126292472390

 

Ответить

AlexM

Дата: Среда, 05.12.2012, 12:57 |
Сообщение № 5

Группа: Друзья

Ранг: Участник клуба

Сообщений: 4257


Репутация:

1046

±

Замечаний:
0% ±


Excel 2003

Для работы макроса надо разрешить их исполнение в настройках безопасности Excel.
Макрос, который в приложенном файле предыдущего сообщения запускается сам по событию изменения значения в ячейке.
Запуск происходит если изменения в столбце В на Лист1. Так что добавляйте счетчики сколько хотите.
Алгоритм такой. Вы меняете значение в любой ячейке столбца В на лист1. Макрос запускается. В цикле ищется счетчик на Лист2 и данные копируются, переносятся и рассчитываются для данного счетчика. Если счетчик новый и на лист2 все ячейки пустые, то значение с Лист1 копируется сразу в две ячейки в столбце В и С
Код макроса в Спойлере

В файле код можно посмотреть нажав Alt+F11



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.

 

Ответить

tench72

Дата: Среда, 05.12.2012, 13:17 |
Сообщение № 6

Группа: Пользователи

Ранг: Прохожий

Сообщений: 6


Репутация:

0

±

Замечаний:
0% ±


AlexM, спасибо!!!!!!!!! буду разбираться!
Мне канеш ответ Serge_007 понравился:) молодчага!
Как в армии НИКАК НЕТ!

 

Ответить

Serge_007

Дата: Среда, 05.12.2012, 13:23 |
Сообщение № 7

Группа: Админы

Ранг: Местный житель

Сообщений: 15894


Репутация:

2623

±

Замечаний:
±


Excel 2016

Вы спрашивали про Excel. В Excel эти действия выполнить невозможно
AlexM, предложил решение на VBA
Про VBA я ничего не писал smile

ЗЫ Отключите макросы — и решения не будет в принципе
ЗЫЗЫ Предложенное решение не будет работать в Excel starter и ОО


ЮMoney:41001419691823 | WMR:126292472390

 

Ответить

tench72

Дата: Среда, 05.12.2012, 13:45 |
Сообщение № 8

Группа: Пользователи

Ранг: Прохожий

Сообщений: 6


Репутация:

0

±

Замечаний:
0% ±


AlexM извините за незнание, но при выполнении макроса выскакивает сообщение:
Ошибка компиляции Не удается найти проект или библиотеку (Can’t find project or library)
Где ее взять и как подключить к макросу?
Спасибо!

 

Ответить

AlexM

Дата: Среда, 05.12.2012, 15:05 |
Сообщение № 9

Группа: Друзья

Ранг: Участник клуба

Сообщений: 4257


Репутация:

1046

±

Замечаний:
0% ±


Excel 2003

Странно, это в моем файле так получается?
Я крайне редко подключаю дополнительные библиотеки. Подключены лишь те что по умолчанию. У меня Excel 2003. Подключены: Visual Basic For Applications, Microsoft Excel 11.0 Object Library, OLE Automation, Microsoft Office 11.0 Object Library.
Какие библиотеки подключены можно так. В редакторе VBA меню Tools — References.

Прочтите СТАТЬЮ на эту тему.



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.

Сообщение отредактировал AlexMСреда, 05.12.2012, 15:12

 

Ответить

tench72

Дата: Среда, 05.12.2012, 15:14 |
Сообщение № 10

Группа: Пользователи

Ранг: Прохожий

Сообщений: 6


Репутация:

0

±

Замечаний:
0% ±


AlexM, все прояснилось, если я запускаю exel на виндовс ХР, то все работает, а если на виндовс 7 х64, то пишет вот такую ошибку!

 

Ответить

tench72

Дата: Среда, 05.12.2012, 15:20 |
Сообщение № 11

Группа: Пользователи

Ранг: Прохожий

Сообщений: 6


Репутация:

0

±

Замечаний:
0% ±


Большое человеческое спасибо Вам AlexM!!!!!!!!!!!!!!!!
Слава богу что еще остались люди, которые могут просто помочь!!!!!!!!!
Да да именно на халяву!!!!!!! Потому как помощь за не халяву это уже не помощь:)
а просто бизнес и ни чего личного:)))))
Будем изучать exel глубже, всем здоровья и удачи и еще раз спасибо!

 

Ответить

Andrej092

Дата: Четверг, 18.07.2013, 13:51 |
Сообщение № 12

Группа: Пользователи

Ранг: Новичок

Сообщений: 19

Здравствуйте, собрал такой макрос. Проверяет время каждые 10 сек и если время до 12,00 то он стирает значение из ячейки «А1»
Есть несколько вопросов.
1) Как сделать чтоб он проверял изменения в ячейке Б1?Если значение в ячейке B1 изменилось то значение из ячейки А1 удаляются.
If Range(«B1»).value <> ‘Не знаю что писать дальше sad Then
2) Как сделать сравнение двух ячеек? Если в «А1» вписывается число, то тогда «B1» становиться пустой и наоборот если заполняется «B1» то «А1» становится пустой
3) Можно ли для пункта Nr2 прописать макрос без времени, а чтоб это делалось сразу автоматически а не через 10 сек ( Можно конечно изменить время, поставить не 10 сек а 1 сек, но хотелось бы без него )

Sub myMacro()
Dim sh As Worksheet
Application.OnTime Now() + TimeSerial(0, 0, 10), «myMacro»
Set sh = ActiveWorkbook.Sheets(1)
If Time < 0.5 Then
Debug.Print Time
ActiveSheet.Range(«A1»).ClearContents
End If
End Sub


:)

 

Ответить

Serge_007

Дата: Четверг, 18.07.2013, 13:58 |
Сообщение № 13

Группа: Админы

Ранг: Местный житель

Сообщений: 15894


Репутация:

2623

±

Замечаний:
±


Excel 2016

Все ответы есть в правилах форума. Прочитайте их внимательно. И оформляйте коды тегами
Эта тема закрыта


ЮMoney:41001419691823 | WMR:126292472390

 

Ответить

 

Привет !  

  Продолжаю приспосабливать EXCEL для фундаментальных лабораторных экспериментов !  

  Значит так, упрощённо это выглядит как то так : см приложенный скриншот !  
__________  

  В ячейку D1 выводятся данные о «текущей температуре» ;  

  В ячейку C1 «система замеров » даёт команду снять показания «цифрой 1» ;  

  При получении команды формула в ячейке B1 делает точное разовое копирование данных из ячейки D1 в ячейку A1 и в дальнейшем Формула в ячейке B1 не реагирует на изменения в ячейке D1.  

  Вопрос в том что я пока не нашёл формулу EXCEL которая даёт эффект копирования :  

  (D1)COPY(A1)  

  Скопировать РЕЗУЛЬТАТ а не формулу из ячейки D1 в ячейку A1. ?  

  и не нашёл пока формулу которая делает ссылку на указанную ячейку :  

  (D1)ССЫЛКА(A1)  

  Сделать ссылку в ячейке A1 на ячейку D1  ( То есть банально написать в ячейку A1 строку =D1 ) . ?  

  Желательно конечно именно использовать в ответе формулу именно EXCEL, а не медленный VBA ! Так как ячеек увы 20000 ! Но сервера мощные ! И можно все равно проверить и попробовать — Напишите хоть как то … А ?  

  PS : К-сожалению время реакции ничтожно мало ( несколько тысячных долей секунды ) что бы можно было успеть ввести поправку вручную !  

  Кроме этого формула должна успешно копироваться из ячейки B1 в ячейки B17:B28000, так как эти 4 колонки идут насквозь на 28000 позиций !  

  Сори за напрягный вопрос !

 

А можно сделать, чтобы каждая строка ( в отдельности ) при помощи «пользовательской функции» записывала в себя значение из другой ячейки, по команде «1» из » сигнальной » ячейки !  

  Как выглядит подобная пользовательская функция на VBA !?  

  Ответ на базе «пользовательской функции» наиболее желаем и удобен для меня в моих расчётах ( ибо можно подставлять куда угодно ! … )  

  А возможно это сделать создав новою заказную функцию EXCEL к примеру «MEMORY» ? На каком языке её нужно писать ? А на каком языке она будет быстрее работать ?  
_________________________________________  

  Думаю это важно :  

  Ответ в случае использования пользовательской функции может появляться в ячейке с самой функцией.  

  Текущий номер строки написан рядом в соседней ячейке в колонке » F «.  

  Все единички в колонке » C » появляются последовательно друг за другом по направлению вниз от С17 до С28000.  
__________________________________________  

  Если это поможет то предполагаю возможен вариант 2 :  

  Смотрите приложенный СКРИНШОТ  
________  

  Значения в колонке С означают :  

  0 — ответ в ячейке «A1»  —  «=D1 или 78  
1 — Вписать в ячейке » A1 » ответ как число из ячейки » D1 »  —   78  
2 — Фиксируется последнее число в ячейке » A1 » ( Получается как бы ячейка памяти ) и отсутствие в дальнейшем реакции на изменения в ячейки » D1 » пока » С1=2 » …  

  Формула либо в колонке » A » либо в колонке «B» :  

  =ЕСЛИ(C1=0;0;ЕСЛИ(C1=1; «Вписать ответ как число из ячейки D1″;C1=2 ; Фиксируется последнее число в ячейки A1 ( Получается как бы ячейка памяти ) и отсутствие в дальнейшем реакции на изменения в ячейки » D1 » пока С1=2))  
_____  

  PS : Ответ на базе «пользовательской функции» наиболее желаем и удобен для меня в моих расчётах ( ибо можно подставлять куда угодно ! … )  

  Не, ну правда, Ужасно интересно ! и Полезно !

 

Ну хотя бы обычную «Пользовательскую функцию» копирования результата из одной ячейки в другую !  

  К примеру :  

  Если в ячейке A1 формула : =70+3  

  ,а в ячейке B1 записана формула :  

  =COPY(A1;D1)  

  То ответ в ячейке  D1 должен быть : 73  

  PS : Внимание ответ в ячейке  D1 это не ссылка =A1 и не формула =70+3.  

  Плиз ! Очень надо !  

  Для Фундаментальных лабораторных научных Экспериментов !

 

{quote}{login=Tort7-3}{date=23.04.2008 11:49}{thema=}{post}Ну хотя бы обычную «Пользовательскую функцию» копирования результата из одной ячейки в другую !  

  К примеру :  

  Если в ячейке A1 формула : =70+3  

  ,а в ячейке B1 записана формула :  

  =COPY(A1;D1)  

  То ответ в ячейке  D1 должен быть : 73  

  PS : Внимание ответ в ячейке  D1 это не ссылка =A1 и не формула =70+3.  

  Плиз ! Очень надо !  

  Для Фундаментальных лабораторных научных Экспериментов !{/post}{/quote}  
Ответ тот же, что и по вопросу о DELETE.  
Принципы реализации Excel таковы, что из контекста формул одной ячейки НЕВОЗМОЖНО менять значения другой. Или поверьте в этот факт, или обращайтесь к Биллу в Micrоsoft.  
Только по завершению работы формулы можно поменять значения других ячеек, если в их формулах указаны соответвующие ссылки.  Или можно отловить некоторые события, на которые и среагировать.  
Действительно, существовали другие электронные таблицы, в которых из одной формулы до завершения ее вычисления можно было поменять значения других ячеек, но Excel устроен иначе.

 

Нерешаемых задач нет !  
Есть просто задачи, которые требуют немного больше времени, чем Мы предполагали !  

  PS: Думаю пользовательская команда на VBA вполне реальна в этом случае и уж 100% реальна на C++ !  

  PS : За узлы ввода и вывода данных в EXCEL я не отвечаю — они написаны не мной ! Они работают на C++ и Ассемблер связывает их с экспериментальным «стендом» !  

  Моя задача : Фундаментальный просчёт, большинства теоретически вероятных явлений, связанных с управляемым ростом температуры и замедление её роста на тестовом стенде в «изделии» методом введения реал-тайм поправок из EXCEL на «автомате» так как время эксперимента ничтожно мало !

 

Похоже, что один фундаментальный просчёт по устройству Excel-я уже случился :)  
Но если исходить из объективной реальности и отрабатывать события по завершению работы формул, то можно попробовать выжать минимальное время реакции на события изменения ячеек: средствами Windows API повысить приоритетность задачи Excel,  отлавливать события в модуле рабочего листа,а не рабочей книги, отключить перерисовку экрана и т.п. Или копать в направлении пользовательских функций XLL (C, С++), которые работают быстрее VBA-ных.

 

Лузер™

Гость

#7

24.04.2008 09:07:42

{quote}{login=}{date=23.04.2008 06:20}{thema=}{post}Нерешаемых задач нет !  
Есть просто задачи, которые требуют немного больше времени, чем Мы предполагали !  

  PS: Думаю пользовательская команда на VBA вполне реальна в этом случае и уж 100% реальна на C++ !  

  PS : За узлы ввода и вывода данных в EXCEL я не отвечаю — они написаны не мной ! Они работают на C++ и Ассемблер связывает их с экспериментальным «стендом» !  

  Моя задача : Фундаментальный просчёт, большинства теоретически вероятных явлений, связанных с управляемым ростом температуры и замедление её роста на тестовом стенде в «изделии» методом введения реал-тайм поправок из EXCEL на «автомате» так как время эксперимента ничтожно мало !{/post}{/quote}Вы за задачу деньги получаете?    
А пытаетесь их заработать копипастом на форумах?  
Или этот пост для тупых местных, которые не смогли его осилить в теме «Нужна Функция «DELETE»?  
Я Вам предлагаю продолжать гордиться фундаментальностью своей задачи, а по вечерам посещать курсы программирования (хоть С++), чтобы использовать номальный инструмент для решения своих не «Нерешаемых задач», а не ёксель, который все-таки предназначен для домохозяеек (пусть и несколько сложен для них).

Специальное копирование значений и формул

Все мы умеем копировать значения и формулы в Excel , но иногда нужно скопировать значение, которое выдает формула или саму формулу без смещения ссылок и диапазонов. Давайте посмотрим как это сделать.

Копирование значений

Чтобы скопировать значение, а не формулу нужно скопировать ячейку, а потом воспользоваться Специальной вставкой , которая поможет нам вставить самые значения. Выглядит это примерно так:

Копирование формул

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

Затем вставить ее в любую ячейку, и формула снова будет ссылаться на те же ячейки, даже без предварительного фиксирования строк и столбцов в формуле.

Однако такой способ не подойдет, если мы захотим скопировать много формул без смещения ссылок. В данном случае нам поможет один хитрый прием. Итак:

Убрать формулу в Excel оставив значения

Удаление формул в Microsoft Excel

Работа с формулами в Экселе позволяет значительно облегчить и автоматизировать различные вычисления. Вместе с тем, далеко не всегда нужно, чтобы результат был привязан к выражению. Например, при изменении значений в связанных ячейках, изменятся и итоговые данные, а в некоторых случаях это не нужно. Кроме того, при переносе скопированной таблицы с формулами в другую область значения могут «потеряться». Ещё одним поводом их спрятать может служить ситуация, когда вы не хотите, чтобы другие лица видели, как проводятся в таблице расчеты. Давайте выясним, какими способами можно удалить формулу в ячейках, оставив только результат вычислений.

Процедура удаления

К сожалению, в Excel нет инструмента, который моментально убирал бы формулы из ячеек, а оставлял там только значения. Поэтому приходится искать более сложные пути решения проблемы.

http://lumpics.ru/how-to-enable-or-disable-Формула в Microsoft Excelmacros-in-excel/

Способ 1: копирование значений через параметры вставки

Скопировать данные без формулы в другую область можно при помощи параметров вставки.

    Выделяем таблицу или диапазон, для чего обводим его курсором с зажатой левой кнопкой мыши. Пребывая во вкладке «Главная», делаем щелчок по значку «Копировать», который размещен на ленте в блоке «Буфер обмена».

Копирование в Microsoft Excel

Вставка в Microsoft Excel

После выполнения этой процедуры диапазон будет вставлен, но только в виде значений без формул. Правда при этом потеряется также и исходное форматирование. Поэтому форматировать таблицу придется вручную.

Таблица вставлена в Microsoft Excel

Способ 2: копирование специальной вставкой

Если вам нужно сохранить исходное форматирование, но вы не хотите тратить время на ручную обработку таблицы, то существует возможность для этих целей использовать «Специальную вставку».

  1. Копируем тем же способом, что и прошлый раз содержимое таблицы или диапазона.
  2. Выделяем всю область вставки или её левую верхнюю ячейку. Делаем щелчок правой кнопкой мыши, тем самым вызывая контекстное меню. В открывшемся списке выбираем пункт «Специальная вставка». Далее в дополнительном меню жмем на кнопку «Значения и исходное форматирование», которая размещается в группе «Вставить значения» и представляет собой пиктограмму в виде квадрата, где изображены цифры и кисточка.

Вставка с помощью специальной вставки в Microsoft Excel

После этой операции данные будут скопированы без формул, но при этом сохранится исходное форматирование.

Вставка с сохранением форматирования в Microsoft Excel

Способ 3: удаление формулы из исходной таблицы

До этого мы говорили, как убрать формулу при копировании, а теперь давайте выясним, как её удалить из исходного диапазона.

  1. Производим копирование таблицы любым из тех методов, о которых шел разговор выше, в пустую область листа. Выбор конкретного способа в нашем случае значения иметь не будет.
  2. Выделяем скопированный диапазон. Щелкаем по кнопке «Копировать» на ленте.

Повторное копирование в Microsoft Excel

Повторная вставка в Microsoft Excel

Удаление таблицы в Microsoft Excel

Настройки удаления в Microsoft Excel

После выполнения указанных действий все ненужные элементы будут удалены, а формулы из исходной таблицы исчезнут.

Способ 4: удаление формул без создания транзитного диапазона

Можно сделать ещё проще и вообще не создавать транзитный диапазон. Правда в этом случае нужно действовать особенно внимательно, ведь все действия будут выполняться в границах таблицы, а это значит, что любая ошибка может нарушить целостность данных.

    Выделяем диапазон, в котором нужно удалить формулы. Кликаем по кнопке «Копировать», размещенной на ленте или набираем на клавиатуре комбинацию клавиш Ctrl+C. Эти действия равнозначны.

Копирование в программе Microsoft Excel

Вставка в программе Microsoft Excel

Таким образом, все данные будут скопированы и тут же вставлены, как значения. После этих действий формул в выделенной области не останется.

Формул в таблице нет Microsoft Excel

Способ 5: использование макроса

Для удаления формул из ячеек можно также использовать макросы. Но для этого нужно сначала активировать вкладку разработчика, а также включить саму работу макросов, если они у вас не активны. Как это сделать, можно узнать в отдельной теме. Мы же поговорим непосредственно о добавлении и использовании макроса для удаления формул.

    Переходим во вкладку «Разработчик». Кликаем по кнопке «Visual Basic», размещенной на ленте в блоке инструментов «Код».

Переход в редактор макросов в Microsoft Excel

Sub Удаление_формул() Selection.Value = Selection.Value End Sub

После этого закрываем окно редактора стандартным способом, нажав на кнопку в правом верхнем углу.

Редактор макросов в Microsoft Excel

Переход к макросам в Microsoft Excel

Запуск макроса в Microsoft Excel

После этого действия все формулы в выделенной области будут удалены, а останутся только результаты вычислений.

Максрос выполнил задачу в Microsoft Excel

Урок: Как включить или отключить макросы в Excel

Урок: Как создать макрос в Excel

Способ 6: Удаление формулы вместе с результатом

Впрочем, бывают случаи, когда нужно удалить не только формулу, но и результат. Сделать это ещё проще.

    Выделяем диапазон, в котором размещены формулы. Кликаем правой кнопкой мыши. В контекстном меню останавливаем выбор на пункте «Очистить содержимое». Если вы не хотите вызывать меню, то можно просто после выделения нажать клавишу Delete на клавиатуре.

Очистка содержимого в Microsoft Excel

Содержимое очищено в Microsoft Excel

Как видим, существует целый ряд способов, с помощью которых можно удалить формулы, как при копировании данных, так и непосредственно в самой таблице. Правда, штатного инструмента Excel, который автоматически убирал бы выражение одним кликом, к сожалению, пока не существует. Таким способом можно удалить только формулы вместе со значениями. Поэтому приходиться действовать обходными путями через параметры вставки или же с применением макросов.

Как скопировать строку с формулами в Excel без изменений значений

В процессе работы с Microsoft Excel у пользователей возникает необходимость внесения дополнительных данных. Для этого необходимо добавлять или копировать строки с формулами.

Кажется, это простая и понятная процедура. Но часто возникает вопрос о том, как добавить новую строку с формулами в Excel с определенными условиями. Например, без изменения адресов в формулах с относительными ссылками на ячейки и т.п. На готовых примерах рассмотрим оригинальные решения этих задач.

Как добавить новую строку с формулами в Excel?

Пускай мы добавили формулы в одну строку или в несколько. Теперь нам нужно скопировать все строки с формулами. Как это сделать при добавлении новой строки?

  1. Выделяем ту строку, которая содержит формулы. В нашей ситуации это строка под номером 3. Нам необходимо, чтобы остальные строки содержали в себе такие же формулы. Исходная стрпока.
  2. Нажимаем на выделенную область правой кнопкой мышки. Из контекстного меню нужно выбрать опцию «Копировать» (или жмем CTRL+C). Копировать.
  3. После этого следует выделить следующую одну (или несколько) нижнюю строку, куда будет вставлена новая с формулами. Место для вставки.
  4. Щелкнуть по заголовку выделенной строки правой кнопкой мышки и выбрать опцию вставить скопированные ячейки (или нажать комбинацию клавиш CTRL+SHIFT+«=»).

Заметьте, значения ячеек не заменились а добавилась в середину таблицы новая строка со старыми значениями и формулами.

Как копировать без изменения формул в Excel?

Часто при копировании относительные формулы (т.е. те, в которых нет знака «$») «подставляют» другие значения. А что делать, если вы не хотите изменять значение формул?

Можно сделать все ссылки в формулах абсолютными. Такие формулы будут копироваться неизменно, без изменения данных. Чтобы сделать ссылки абсолютными, добавляем к ним знак «$».

Ставим перед буквами и перед числами знак доллара – и получаем абсолютные ссылки в формулы, значения в которых не будут изменяться при копировании.

На пример в такой таблице ссылка на наценку ($B$1) не будет изменятся при копировании на новых строках, так как она является абсолютной, а не относительной:

Абсолютная ссылка.

Но в некоторых больших и сложных таблицах слишком много формул, которые нужно скопировать и переместить. И чтобы во всех ссылках проставить знак «$» нужно потратить много времени.

Для решения данной задачи можно воспользоваться хитрым способом. До копирования заменить все знаки «=» на символ «#».

Для «активации» работы формул используется знак «равно» (или «=»). Чтобы деактивировать их на время копирования поменяем = на #. А после копирования вернем все на свои места. Это позволит нам обойти автоматическую смену адресов в относительных ссылках при копировании.

  1. Нажимаем Ctrl+H (вызываем окно «Главная»-«Найти и выделить»-«Заменить»). Заменить.
  2. Необходимо в поле «Найти» указать символ =, а в поле «Заменить на» символ #. И жмем «Заменить все». Пример1.
  3. После этого вы можете скопировать необходимую строку, а в ее формулах не изменятся адреса ссылок на ячейки, так как они временно деактивированные. Пример2.
  4. Снова жмем комбинацию горячих клавиш «Ctrl+H», но теперь указываем в полях обратные значения: найти «#» и заменить на «=». Система вернет все на свои места

В результате при копировании во всех строках ссылки формул остались неизменными.

Понравилась статья? Поделить с друзьями:
  • Функция сколько ячеек в excel
  • Функция склонения в excel 2016
  • Функция склонение фио в excel
  • Функция склонение в excel скачать бесплатно
  • Функция склонение в excel на английском