Excel перенос текста по условию

 

AnatoliyAN

Пользователь

Сообщений: 7
Регистрация: 22.07.2015

Помогите, пожалуйста! Вторую неделю не могу найти вариант решения… Есть «База», нужно, чтобы при введении слова договор в ячейку «Статус» вся строка перенеслась на другой лист «Д.Газ» (или хотя бы скопировалась автоматически на другой лист). За ранее благодарю всех за помощь.

 

JayBhagavan

Пользователь

Сообщений: 11833
Регистрация: 17.01.2014

ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64

#2

22.07.2015 16:11:14

В код листа «База»:

Скрытый текст

<#0>
Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori

 

AnatoliyAN

Пользователь

Сообщений: 7
Регистрация: 22.07.2015

А как это ввести в код листа?

 

JayBhagavan

Пользователь

Сообщений: 11833
Регистрация: 17.01.2014

ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64

ПКМ по имени листа, исходный текст. Файл сохранить в двоичном или формате поддерживающем хранение макросов. И загляните в ПРИЁМЫ, там про макросы тоже есть информация.

<#0>
Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori

 

AnatoliyAN

Пользователь

Сообщений: 7
Регистрация: 22.07.2015

не работает :(. может я что-то не правильно сделал… Могу попросить Вас в тот файл, что я загрузил вставить этот макрос?

 

JayBhagavan

Пользователь

Сообщений: 11833
Регистрация: 17.01.2014

ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64

Пожалуйста.

<#0>
Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori

 

AlexTM

Пользователь

Сообщений: 432
Регистрация: 29.05.2015

Win7SP1 EXL2010 / Win8.1 EXL2016 (VM)

JayBhagavan, код не срабатывает, если вписать слово договор не последовательно, а, например, сразу ниже на десять ячеек… Просто наблюдение, ибо учусь :oops:

 

AnatoliyAN

Пользователь

Сообщений: 7
Регистрация: 22.07.2015

спасибо! работает! :) , но JayBhagavan прав — если вводить не последовательно — не работает. Это можно исправить?

 

AlexTM

Пользователь

Сообщений: 432
Регистрация: 29.05.2015

Win7SP1 EXL2010 / Win8.1 EXL2016 (VM)

#9

22.07.2015 17:29:43

Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Set trgt_rng = Range([D2], [D2].End(xlDown))
    If Target.Count = 1 Then
       If Target.Value = "Договор" Then
            Set out_rng = Worksheets("Д.Газ").[A1].Offset(Cells.Rows.Count - 1).End(xlUp).Offset(1)
            Target.EntireRow.Copy out_rng
            Application.CutCopyMode = False
        End If
    End If
End Sub
 

AlexTM

Пользователь

Сообщений: 432
Регистрация: 29.05.2015

Win7SP1 EXL2010 / Win8.1 EXL2016 (VM)

Возможно, не лучшее решение, ибо могут возникнуть ошибки. Но вроде работает, если вводить только слово Договор.

 

AlexTM

Пользователь

Сообщений: 432
Регистрация: 29.05.2015

Win7SP1 EXL2010 / Win8.1 EXL2016 (VM)

 

AlexTM

Пользователь

Сообщений: 432
Регистрация: 29.05.2015

Win7SP1 EXL2010 / Win8.1 EXL2016 (VM)

AnatoliyAN, поинтересуйтесь у знатоков, как модифицировать код, чтобы можно было удалять или изменять перенесенную строку. Например, если вдруг договор отменился… тогда нужно будет строку удалить, например, по другому кодовому слову «Отмена» с поиском ее на листе Д.Газ. Ну, а там, сами смотрите…

 

AnatoliyAN

Пользователь

Сообщений: 7
Регистрация: 22.07.2015

Ура!!! Спасибо. Работает!!! Вы мне ОЧЕНЬ помогли :)

 

JayBhagavan

Пользователь

Сообщений: 11833
Регистрация: 17.01.2014

ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64

#14

22.07.2015 17:44:33

Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Set trgt_rng = Range([D2], [D2].End(xlDown))
    If Not Intersect(trgt_rng, Target) Is Nothing And Target.Cells(1).Value = "Договор" Then
        Set out_rng = Worksheets("Д.Газ").[A1].Offset(Cells.Rows.Count - 1).End(xlUp).Offset(1)
        Target.EntireRow.Copy out_rng
        Application.CutCopyMode = False
    End If
End Sub

<#0>
Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori

 

AnatoliyAN

Пользователь

Сообщений: 7
Регистрация: 22.07.2015

#15

22.07.2015 18:09:23

Цитата
AlexTM написал:… как модифицировать код, чтобы можно было удалять или изменять перенесенную строку

Єто было бы вообще идеально, еслибы они автоматически удалялись при таком условии…

 

JayBhagavan

Пользователь

Сообщений: 11833
Регистрация: 17.01.2014

ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64

AnatoliyAN, опишите какое(ие) поле(я) являются идентификаторами записи и тогда можно будет и отмену реализовать.

<#0>
Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori

 

AlexTM

Пользователь

Сообщений: 432
Регистрация: 29.05.2015

Win7SP1 EXL2010 / Win8.1 EXL2016 (VM)

AnatoliyAN, сия заслуга JayBhagavan
JayBhagavan, наверное, индикатором записи/удаления будет одно и то же поле… Но вопрошающий знает наверняка  :)

 

AnatoliyAN

Пользователь

Сообщений: 7
Регистрация: 22.07.2015

Всем, здравствуйте! Благодарю Вас за неравнодушие к моей проблеме! По поводу индикатора: колонка «статус». Наверное самое удобное, чтобы при внесении в ячейку колонки «статус» слова «договор» вся строка копируется в лист «Д.Газ», а при удалении из этой ячейки слова «договор» скопированная строка тоже автоматически удаляется с листа «Д.Газ»

 

Cors

Пользователь

Сообщений: 2
Регистрация: 23.07.2015

Здравствуйте!
Тема очень актуальна. Уже внедряю этот макрос. Только мне нужен захват не всей строки, а нескольких ячеек в строке с индикатором.
Если Вам не трудно, подскажите новичку как в коде это прописать. Например, нужен отбор из листа «База» в лист «Д.Газ» только инфы со столбцов Наименование и Инфо.
Спасибо.

 

JayBhagavan

Пользователь

Сообщений: 11833
Регистрация: 17.01.2014

ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64

#20

23.07.2015 16:12:20

AnatoliyAN, попробую ещё раз донести до Вас свою мысль, т.к. моя формулировка, увы, не понятна Вам осталась. Макрос скопировал некую строку, если вместо договор Вы укажете отмена, например, то макрос по полю «№» будет удалять строку? Поле «№» всегда уникально для каждой записи? А вообще, это тема помощи, а не работа, потому старайтесь и сами хоть что-то сделать.

Cors, замените строку:

Код
Target.EntireRow.Copy out_rng

на, например, такое:

Код
range("a" & Target.row & ",c" & Target.row & ",n" & Target.row).Copy out_rng

Не проверял, потому тестируйте.

Изменено: JayBhagavan23.07.2015 16:13:45
(забыл .Copy в примере написать)

<#0>
Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori

 

Cors

Пользователь

Сообщений: 2
Регистрация: 23.07.2015

JayBhagavan, большое спасибо! Все работает. Сейчас буду затачивать под свою таблицу.
По ходу надо углубляться в VBA, уж больно полезное.

Пользуясь добротой опытных пользователей и своей нескромностью так-же спрошу:
1) В данном примере макрос работает, если в определенной ячейке ввести «Договор», а если ячейки уже содержат это слово, можно ли заставить перебрать весь диапазон?
2) Возможно ли настроить макрос, чтоб он реагировал не на ввод текста в ячейке, а например, на условное форматирование(закрашивание цветом) в этой ячейке?
Спасибо.

 

JayBhagavan

Пользователь

Сообщений: 11833
Регистрация: 17.01.2014

ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64

#22

23.07.2015 17:32:59

Cors, не за что. Лучше не злоупотреблять добротой — это приводит к нарушению правил. (один вопрос — одна тема)

Скрытый текст

<#0>
Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori

 

китин

Пользователь

Сообщений: 931
Регистрация: 16.05.2013

как то очень мне это

знакомо.

что там было не так?

Изменено: китин23.07.2015 17:54:13

Вполне такой нормальный кинжальчик. Процентов на 100
<#0>

 

icemen

Пользователь

Сообщений: 8
Регистрация: 13.10.2015

Здравствуйте!
Огромное спасибо за Ваши подсказки, многие мне очень хорошо помогли.
Но у меня так и не получается перенести из одного листа (Заявки) в другой (Выдачи) не всю строку, а только ее часть ( из D (Заявки) — в C (Выдачи), из F (Заявки) — в H (Выдачи), из G (Заявки) — в I (Выдачи)). Все работает при смене статуса (Ячейка H (Заявки)).
Огромная просьба помочь в данной ситуации. Заранее большое спасибо!

 

JayBhagavan

Пользователь

Сообщений: 11833
Регистрация: 17.01.2014

ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64

#25

13.10.2015 22:19:27

icemen, здравия.

Цитата
icemen написал:
( из D (Заявки) — в C (Выдачи), из F (Заявки) — в H (Выдачи), из G (Заявки) — в I (Выдачи)). Все работает при смене статуса (Ячейка H (Заявки)).

Сдаётся мне, что Вы что-то путаете, но сделал почти так как просили — не делал перемещение, а только копирование, чтобы Вы поняли так или нет Вы хотели. В код листа «Заявки»:

Код
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim wbf As Worksheet, wbd As Worksheet, c_row&, l_row&
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("H:H")) Is Nothing Then
        If Target.Value = "ЗАКР" Then
            Application.EnableEvents = False
            c_row = Target.Row
            Set wbf = ThisWorkbook.Worksheets("Заявки")
            Set wbd = ThisWorkbook.Worksheets("Выдачи")
            wbd.Range("Таблица2[#Totals]").ListObject.ListRows.Add
            l_row = wbd.Range("A1").End(xlDown).Row + 1
            wbd.Range("A" & l_row).FillDown
            wbd.Range("C" & l_row).Value = wbf.Range("D" & c_row).Value
            wbd.Range("H" & l_row).Value = wbf.Range("F" & c_row).Value
            wbd.Range("I" & l_row).Value = wbf.Range("G" & c_row).Value
            Application.EnableEvents = True
        End If
    End If
End Sub

<#0>
Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori

 

icemen

Пользователь

Сообщений: 8
Регистрация: 13.10.2015

Не знаю сейчас правильно Вас понял или нет, но я ПКМ на вкладке «Заявки», Исходный текст в окно вставил код, который вы прислали, сохранил и пру проставлении статуса ЗАКР у меня выдает ошибку. Извините, если я делаю не правильно, в этом у меня мало опыта. Заранее еще раз большое спасибо.

wbd.Range(«Таблица2[#Totals]»).ListObject.ListRows.Add — в коде выделяется

ЖЕЛТЫМ.

Изменено: icemen14.10.2015 19:17:59

 

JayBhagavan

Пользователь

Сообщений: 11833
Регистрация: 17.01.2014

ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64

icemen, приложите файл, в котором возникает ошибка, т.к. на примере у меня ошибок не было.

<#0>
Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori

 

icemen

Пользователь

Сообщений: 8
Регистрация: 13.10.2015

 

JayBhagavan

Пользователь

Сообщений: 11833
Регистрация: 17.01.2014

ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64

#29

15.10.2015 09:37:33

icemen, пробуйте:

Скрытый текст

<#0>
Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori

 

icemen

Пользователь

Сообщений: 8
Регистрация: 13.10.2015

#30

15.10.2015 12:44:54

Делаю как и описывал уже с новым кодом, но у меня все равно подгружаются не те данные в лист «Выдача». Скрин прикладываю.

Прикрепленные файлы

  • Безымянный.jpg (89.19 КБ)

0 / 0 / 0

Регистрация: 30.06.2016

Сообщений: 4

1

Перенос всех строк с заданным условием на другой лист

30.06.2016, 21:23. Показов 56025. Ответов 20


Студворк — интернет-сервис помощи студентам

Здравствуйте.

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

К примеру, у меня есть набор данных, из которых я хочу вычленить только те, где значение столбца URL = *instagram.com и перенести на другой лист вместе со всеми другими параметрами.

Читала много тем на форуме, но никак не могу провести параллели со своей задачей.

Очень буду рада помощи! Спасибо.

тест.xlsx



0



5942 / 3154 / 698

Регистрация: 23.11.2010

Сообщений: 10,524

30.06.2016, 21:25

2

Расширенный фильтр посмотрите



0



0 / 0 / 0

Регистрация: 30.06.2016

Сообщений: 4

30.06.2016, 21:32

 [ТС]

3

Посмотрела. Пишет, что копирование на отдельный лист не допускается.

Пол дня сегодня промучилась над этим вопросом( Голова уже не соображает.

Если в примере я привела двадцать строк, то по работе я имею дело с массивом в несколько тысяч.

Мальчик занимавшийся макросами уволился, а на меня всех собак повесили.
Если кто может объяснить доходчиво, я попробую написать сама, но за что хвататься — не знаю!



0



5942 / 3154 / 698

Регистрация: 23.11.2010

Сообщений: 10,524

30.06.2016, 22:02

4

testpa, скопируйте на этот же лист, потом перенесете на другой лист



0



4131 / 2235 / 940

Регистрация: 01.12.2010

Сообщений: 4,624

30.06.2016, 22:13

5

Лучший ответ Сообщение было отмечено testpa как решение

Решение

testpa, Если

перед

тем, как вызвать диалоговое окно Расширенный фильтр, Вы активируете рабочий лист, куда необходимо скопировать все отфильтрованные данные, то всё сработает. А если захотите немного упростить себе жизнь, то в аттаче сможете найти пример с тем же расширенным фильтром.



3



0 / 0 / 0

Регистрация: 30.06.2016

Сообщений: 4

30.06.2016, 22:28

 [ТС]

6

Огромное спасибо! Все работает!!! Даже с кнопочкой

Но как вы это сделали?? Я вас очень прошу, объясните мне поэтапно, если после рабочего дня на это остались силы и терпение. Я не могу тупо пользоваться уже готовым( Если задача поменяется и нужно будет менять какие-то условия, то сяду в лужу. Хочется понять принцип работы, чтобы самой в дальнейшем решать. Нужно головой не только кушать)

Тысячи благодарностей вам)



0



4131 / 2235 / 940

Регистрация: 01.12.2010

Сообщений: 4,624

30.06.2016, 22:44

7

Собственно, я просто использовал расширенный фильтр, только программно. Единственный нюанс — исходный диапазон, там определяется как текущая область вокруг ячейки Упоминания!B3

Миниатюры

Перенос всех строк с заданным условием на другой лист
 



0



0 / 0 / 0

Регистрация: 30.06.2016

Сообщений: 4

30.06.2016, 23:19

 [ТС]

8

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

Добавлено через 9 минут
pashulka, и последнее) Скажите, а можно вот этот уже готовый фильтр превратить в макрос (и сделать для него такую же красивую кнопочку, как у вас).



0



4131 / 2235 / 940

Регистрация: 01.12.2010

Сообщений: 4,624

30.06.2016, 23:39

9



0



0 / 0 / 0

Регистрация: 19.10.2015

Сообщений: 13

07.06.2020, 01:01

10

Доброго времени суток, Уважаемые знатоки!
У меня похожая ситуация, только можно подправить таким образом, чтобы копировалась не вся строка, а только именно эти столбцы.
Заранее спасибо!



0



4131 / 2235 / 940

Регистрация: 01.12.2010

Сообщений: 4,624

07.06.2020, 08:26

11

alyaska213, Если столбец, где находятся критерии отбора, является частью ‘именно этих’ столбцов, то указывайте конкретно их. А если речь идёт о несмежных столбцах, то копируете все столбцы и удаляете ненужные.

Или говорите более предметно, файл с абстрактными данными (в виде .xls/.xlsx, не картинки) в виде нескольких десятков строк. И что нужно копировать, по какому принципу(критерию). И не помешает сказать, сколько в реальности строк.



0



0 / 0 / 0

Регистрация: 19.10.2015

Сообщений: 13

07.06.2020, 11:48

12

Я в качестве примера за основу взял данные девушки, которая выше писала, т.к. вся база на работе осталась.
Но учел количество столбцов.

В файле лист «Данные» строк будет не более 1500. По столбцу, выделенной красной заливкой, будет происходить фильтрование, по аналогии с сообщениями девушки выше (vk.com, facebook.com, и т.д.)

В листе «Выборка» — готовый вид отфильтрованных значений.



0



4131 / 2235 / 940

Регистрация: 01.12.2010

Сообщений: 4,624

07.06.2020, 13:43

13

В файле нет переноса только избранных столбцов.
А чтобы избежать очистки данных лишних столбцов, достаточно явно указать столбцы, т.е. вместо
wsSheet2.[A5].CurrentRegion.Clear написать что-то вроде wsSheet2.Range(«A5:H» & Rows.Count).Clear

или wsSheet2.Range(«A5:H» & wsSheet2.Rows.Count).Clear если в момент выполнения макроса — активным может быть лист, не имеющий ячеек, например, лист диаграммы



1



0 / 0 / 0

Регистрация: 19.10.2015

Сообщений: 13

07.06.2020, 21:02

14

pashulka, Превосходно и Волшебно!

Я прошу прощения за столь яркие эмоции, просто сам только буквально вчера начал изучать макросы.

Огромнейшее спасибо!!!

С Днем Святой Троицы!



0



0 / 0 / 0

Регистрация: 14.11.2020

Сообщений: 4

14.11.2020, 18:22

15

Здравствуйте!

Я методом тыка и многих чтений сделала такую же таблицу, вот только в моем списке поиск по Фамилии учеников
Подскажите пожалуйста, а можно дописать какую-то команду, чтобы искалось не совпадение в ячейке, а точное значение.
Потому что есть, к примеру Сорокин, а есть СорокинА.
И в поля, связанных с Сорокин, происходит непонятные вычисления.

Буду признательна.



0



2628 / 1634 / 744

Регистрация: 23.03.2015

Сообщений: 5,135

14.11.2020, 18:25

16

teacher6,
Прикрепите файл- пример …
Покажите в нем исходные данные ( 3-4 строки) и что хотите получить…



0



2628 / 1634 / 744

Регистрация: 23.03.2015

Сообщений: 5,135

14.11.2020, 23:52

17

teacher6,

Если используете файл Паши, то уберите звездочки (*) перед словом и после него

Миниатюры

Перенос всех строк с заданным условием на другой лист
 



0



0 / 0 / 0

Регистрация: 14.11.2020

Сообщений: 4

23.11.2020, 08:54

18

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



0



Narimanych

2628 / 1634 / 744

Регистрация: 23.03.2015

Сообщений: 5,135

23.11.2020, 10:42

19

teacher6,
Для вашего файла:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Sub MMM()
With Worksheets("Óïîìèíàíèÿ")
        Set R1 = Range(.Cells(4, 2), .Cells(.Cells(Rows.Count, 4).End(xlUp).Row, 9))
        ARR1 = R1.Value
End With
M = 1
With Worksheets("Ðåçóëüòàò")
ReDim ARR2(1 To UBound(ARR1), 1 To UBound(ARR1, 2))
 SS = .Cells(2, 1).Value
        For i = 1 To UBound(ARR1)
            If ARR1(i, 3) = SS Then
              For j = 1 To UBound(ARR1, 2)
                ARR2(M, j) = ARR1(i, j)
              Next
              M = M + 1
        End If
        Next
Range(.Cells(6, 1), .Cells(200, 8)).ClearContents
  .Cells(6, 1).Resize(UBound(ARR2), UBound(ARR2, 2)).Value = ARR2
        
End With
End Sub



0



0 / 0 / 0

Регистрация: 06.04.2021

Сообщений: 1

07.04.2021, 11:18

20

Подскажите пожалуйста, как сделать: есть таблица excel, состоящая из трех листов. Необходимо, чтобы при вводе «done» в столбце T вся строка из первого листа копировалась на 3 лист. Спасибо.



0



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

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

Сообщений: 2


Репутация:

0

±

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


Excel 2010

Добрый день!
Не скажу, что совсем не знаю Excel но все таки требуется помощь!
Есть таблица. На первом листе со множеством столбцов и ещё большим количеством строк. Содержание ячеек представлено в виде текстовой информации, дат, цен, текстовой информацией, пусть будет «Ресстр». Данный Реестр каждый день пополняется новыми данными
Как сделать так, чтобы на следующем листе книги отражалась (дублировалась) информация (строка) лишь по нескольким ячейкам из листа №1, при условии что данные в одном из столбцов > 0 То есть, если в Таблице № 1 в столбце «6» какой-либо строчки появляется значение >0, тогда эта строчка с определенным (меньшим) набором ячеек переносится в Таблицу № 2 и встает по порядку. И по мере добавления строк в лист 1 данные автоматически отображались бы в листе 2 при указанном выше условии.
Лучше бы без макросов.
Буду признателен за пошаговую инструкцию, дабы иметь возможность разрабатывать самому вариации применения
файл ниже
За ранее благодарен!

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

___.xlsx
(67.0 Kb)


Чулпан

Сообщение отредактировал chulpanЧетверг, 30.03.2017, 21:35

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

Например, у вас есть большой прайс на 500 позиций и запрос от покупателя, скажем на 50 позиций (в реальности и прайс и запрос могут быть гораздо больше, но принцип от этого не меняется).

Вам нужно быстро найти цены на эти 50 позиций. Разумеется, можно отдельно искать каждую позицию в большом прайсе и потратить на это 30 – 60 минут, а можно сделать это менее чем за минуту при помощи функции ВПР.

Итак, у нас в прайсе 500 позиций. Позиции обозначаются следующим образом, буквами обозначается вид позиции, а цифрами модификация.

Например, «Стул_1» и «Стул_21» это два совершенно разных стула.

Цены в прайсе указаны для примера и вряд ли имеют отношение к реальным ценам.

В ООО «ЫкэА» пришел запрос от «Петровича».

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

Однако это нас не страшит, во-первых, у нас есть ВПР, во-вторых мы и не такое видали.

Петрович требует, чтобы мы очень быстро проставили цены в его запросе. Ждать он намерен максимум 5 минут. Ведь другие поставщики уже завалили его предложениями.

Нам не хочется терять такого клиента и мы практически мгновенно открываем прайс:

Получается у нас должно быть открыто два файла (две книги в Эксель). Запрос от Петровича и Прайс.

Это как раз то что необходимо, осталось только перенести цены из прайса в запрос.

Для этого перейдем в таблицу запроса и в первой ячейке столбца «Цены» (D4) введем «=впр» и два раза кликнем на значок функции:

Сразу же после этого, в строке формулы нужно поставить курсор внутри надписи ВПР и нажать Fx, перед вами появится окно с аргументами функции ВПР:

В аргументах функции вы говорите Экселю что и где нужно искать:

Искомое значение — это значение (в данном случае наименование), цену которого вы хотите найти в прайсе. Соответственно кликайте на первую ячейку столбца «Наименование».

Далее, сразу переходите в «Прайс»:

Теперь в аргументах функции заполните следующие поля:

Таблица — выделяете столбцы, которые содержат искомые наименования и цены, таким образом, чтобы наименования были крайним левым столбцом.

Так работает функция ВПР — ищет искомые значения в крайнем левом столбце (для ВПР это столбец №1). Когда ВПР находит искомое значение он начинает смотреть правее, в тот столбец, который вы указали в «Номере столбца».

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

Интервальный просмотр — ставьте 0. Ноль обозначает точное соответствие.

После заполнения аргументов функции нажимайте «Ок» и если всё сделано верно, то в столбце «Цена» (файл «Запрос от Петровича»), появится цена.

Вам нужно протянуть цены на оставшиеся ячейки:

Коллеги, вот и всё, вы овладели функцией ВПР.

Очень важное замечание!

Обратите внимание на то, что сейчас мы работали в двух разных файлах (книгах).

Когда работа идёт в двух разных книгах, Эксель автоматически закрепляет таблицу в функции ВПР:

Делает это он при помощи значка $, который проставляет перед столбцами и строками таблицы.

Это позволяет не съезжать формуле когда вы протягиваете её вниз. Это очень актуально когда вы работаете в рамках одного листа или одной книги (в этом случае Эксель автоматически Не закрепляет ячейки).

Давайте посмотрим что получиться если протянуть формулу «без закрепления»:

Обратите внимание, что для первой ячейки всё в порядке и диапазон B3:C502 точно соответствует той таблице, которую мы выделили для поиска данных, однако (без закрепления) так будет не всегда, по мере «протягивания» формулы ВПР вниз, будет смещаться и таблица, пока однажды, мы не увидим вот такую странную надпись #Н/Д:

#Н/Д значит что функция ВПР не смогла найти цену Стул_13 в прайсе и это не мудрено, ведь диапазон таблицы в формуле ВПР уехал ниже этого значения:

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

Очень важное замечание №2

Как вы заметили, формулы ссылаются на определённые ячейки, другими словами между формулами и исходными данными есть связь. Стоит изменить исходные данные и значения в формулах сразу изменятся.

Особенно остро это чувствуется в ВПР. Если вы вдруг забудетесь и в исходной табличке добавите лишний столбец в «неположенном месте», то в формула ВПР выдаст совсем неожиданные значения.

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

Для этого нужно выделить столбец с формулами, нажать Ctrl+C и в левом верхнем углу выбрать «Вставить» — «Вставить значения».

Для тех кто не любит изучать картинки, я записал небольшое видео в котором показываю всё то, что мы проговорили выше (кроме вставки значений):

Видео — «Быстрый перенос данных с помощью функции ВПР в Экселе»

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

Это очень актуально для тех кто работает в закупках и отправляет заказы поставщику.

Обычно происходит следующая ситуация. Вы отправляете заказ поставщику, через некоторое время получаете ответ в виде счёта и сверяете заказ с счётом.

Всё ли есть в счёте, в нужном ли количестве, по правильным ли ценам и т.д.

Функция ВПР в Экселе: пошаговая инструкция

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

Во второй – цены:

Если перечень товаров в обеих таблицах совпадает, то, зная магическое сочетание Ctrl+C и Ctrl+V, данные о ценах можно легко подставить к данным о количестве. Однако очередность позиций в обеих таблицах не совпадает. Тупо скопировать цены и подставить к количеству не получится.

Поэтому мы не можем прописать формулу умножения и «протянуть» вниз на все позиции.

Что делать? Надо как-то цены из второй таблицы подставить к соответствующему количеству в первой, т.е. цену товара А к количеству товара А, цену Б к количеству Б и т.д.

Функция ВПР в Эксель легко справится с задачей.

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

Для вызова функции с помощью Мастера нужно активировать ячейку, где будет прописана формула и нажать кнопку f(x) в самом начале строки формул. Появится диалоговое окно Мастера, где из списка всех функций нужно выбрать ВПР.

Кликаем по надписи «ВПР». Открывается следующее диалоговое окно.

Теперь нужно заполнить предлагаемые поля. В первом окошке «Искомое_значение» нужно указать критерий для ячейки, в которую мы вписываем формулу. В нашем случае это ячейка с наименованием товара «А».

Следующее поле «Таблица». В нем нужно указать диапазон данных, где будет осуществляться поиск нужных значений. В нашем случае это вторая таблица с ценой. При этом крайний левый столбец выделяемого диапазона должен содержать те самые критерии, по которым осуществляется поиск (столбец с наименованиями товаров). Затем таблица выделяется вправо минимум до того столбца, где находятся искомые значения (цены). Можно и дальше вправо выделить, но это уже ни на что не влияет. Главное, чтобы выделенная таблица начиналась со столбца с критериями и захватывала нужный столбец с данными. Также следует обратить внимание на тип ссылок, они должны быть абсолютными, т.к. формула будет копироваться в другие ячейки.

Следующее поле «Номер_столбца» — это число, на которое столбец с искомыми данными (ценами) отстоит от столбца с критерием (наименованием товара) включительно. То есть отсчет идет, начиная с самого столбца с критерием. Если у нас во второй таблице оба столбца находятся рядом, то нужно указать число 2 (первый – критерий, второй — цены). Часто бывает, что данные отстоят от критерия на 10 или 20 столбцов. Это не важно, Excel все сосчитает.

Последнее поле «Интервальный_просмотр», где указывается тип поиска: точное (0) или приблизительное (1) совпадение критерия. Пока ставим 0 (или ЛОЖЬ). Второй вариант рассмотрен ниже.

Нажимаем ОК. Если все правильно и значение критерия есть в обеих таблицах, то на месте только что введенной формулы появится некоторое значение. Остается только протянуть (или просто скопировать) формулу вниз до последней строки таблицы.

Теперь легко рассчитать стоимость простым умножением количества на цену.

Формулу ВПР можно прописать вручную, набирая аргументы по порядку, и разделяя точкой с запятой (см. видеоурок ниже).

Особенности использования формулы ВПР в Excel

Функция ВПР имеет свои особенности, о которых следует знать.

1. Первую особенность можно считать общей для функций, которые используются для многих ячеек путем прописывания формулы в одной из них и дальнейшим копированием в остальные. Здесь нужно обращать внимание на относительность и абсолютность ссылок . Конкретно в ВПР критерий (первое поле) должно иметь относительную ссылку (без знаков $), так как у каждой ячейки свой собственный критерий. А вот поле «Таблица» должно иметь абсолютную ссылку (адрес диапазона прописывается через $). Если этого не сделать, то при копировании формулы диапазон «поедет» вниз и многие значения просто не найдутся, так как искать будет негде.

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

3. Функция ВПР из диапазона с искомыми данными выдает первое сверху значение. Это значит, что, если во второй таблице, откуда мы пытаемся «подтянуть» некоторые данные, присутствуют несколько ячеек с одинаковым критерием, то в рамках выделенного диапазона ВПР захватит первое сверху значение. Об этом следует помнить. К примеру, если мы хотим к цене товара подтянуть количество из другой таблицы, а там этот товар встречается несколько раз (в нескольких строках), то к цене подтянется первое сверху количество.

4. Последний параметр формулы, который 0 (нуль), ставить нужно обязательно. Иначе формула может криво работать.

5. После использования ВПР саму формулу лучше сразу удалить, оставив только полученные значения. Делается это очень просто. Выделяем диапазон с полученными значениями, нажимаем «копировать» и на это же место с помощью специальной вставки вставляем значения. Если таблицы находятся в разных книгах Excel, то очень удобно разорвать внешние связи (оставив вместо них только значения) с помощью специальной команды, которая находится по пути Данные → Изменить связи.

После вызова функции разрывания внешних связей появится диалоговое окно, где нужно нажать кнопку «Разорвать связь» и затем «Закрыть».

Это позволит удалить сразу все внешние ссылки.

Интервальный просмотр в функции ВПР

Наступило время обсудить последний аргумент функции ВПР. Как правило, указываю 0, чтобы функция искала точное совпадение критерия. Но есть вариант приблизительного поиска, это называется интервальный просмотр.

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

Проще понять на примере. По результатам выполнения плана продаж каждому торговому агенту нужно выдать заслуженную премию (в процентах от оклада). Если план выполнен менее, чем на 100%, премия не положена, если план выполнен от 100% до 110% (110% не входит) – премия 20%, от 110% до 120% (120% не входит) – 40%, 120% и более – премия 60%. Данные находятся в следующем виде.

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

и скопируем вниз.

На рисунке ниже изображена схема, как работает интервальный просмотр функции ВПР.

Джеки Чан выполнил план на 124%. Значит ВПР в качестве критерия ищет во второй таблице ближайшее меньшее значение. Это 120%. Затем отсчитывает 2 столбца и возвращает премию 60%. Брюс Ли план не выполнил, поэтому его ближайший меньший критерий – 0%.

Синтаксис и описание функции ВПР в Excel

Итак, так как второе название этой статьи «Функция ВПР в Excel для чайников», начнем с того что узнаем, что же такое функция ВПР и что она делает? Функция ВПР на английском VLOOKUP, ищет указанное значение и возвращает соответствующее значение из другого столбца.

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

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

Функция ВПР доступна во всех версиях Excel 2016, Excel 2013, Excel 2010, Excel 2007, Excel 2003.

Синтаксис функции ВПР выглядит следующим образом:

Как видите, функция ВПР имеет 4 параметра или аргумента. Первые три параметра обязательные, последний – необязательный.

  1. искомое_значение – это значение для поиска.

Это может быть либо значение (число, дата или текст), либо ссылка на ячейку (ссылка на ячейку, содержащую значение поиска), или значение, возвращаемое некоторой другой функцией Excel. Например:

  • Поиск числа : =ВПР(40; A2:B15; 2) – формула будет искать число 40.
  • Поиск текста : =ВПР(«яблоки»; A2:B15; 2) – формула будет искать текст «яблоки». Обратите внимание, что вы всегда включаете текстовые значения в «двойные кавычки».
  • Поиск значения из другой ячейки : =ВПР(C2; A2:B15; 2) – формула будет искать значение в ячейке C2.
  1. таблица – это два или более столбца данных.

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

Итак, наша формула =ВПР(40; A2:B15; 2) будет искать «40» в ячейках от A2 до A15, потому что A – это первый столбец таблицы A2: B15.

  1. номер_столбца – номер столбца в таблице, из которой должно быть возвращено значение в соответствующей строке.

Самый левый столбец в указанной таблице равен 1, второй столбец – 2, третий – 3 и т. д.

Итак, теперь вы можете прочитать всю формулу =ВПР(40; A2:B15; 2). Формула ищет «40» в ячейках от A2 до A15 и возвращает соответствующее значение из столбца B (потому что B является вторым столбцом в указанной таблице A2:B15).

4. интервальный_просмотр определяет, ищете ли вы точное соответствие (ЛОЖЬ) или приблизительное соответствие (ИСТИНА или опущено). Этот последний параметр является необязательным, но очень важным.

Как использовать именованный диапазон или таблицу в формулах ВПР

Если вы собираетесь использовать один и тот же диапазон поиска в нескольких формулах ВПР, вы можете создать именованный диапазон для него и ввести имя непосредственно в аргументе таблица вашей формулы ВПР.

Чтобы создать именованный диапазон, просто выберите ячейки и введите любое имя в поле « Имя », слева от панели « Формула ».

Функция ВПР в Excel – Присвоение имени диапазону

Теперь вы можете написать следующую формулу ВПР, чтобы получить цену Продукта 1:

Функция ВПР в Excel – Пример функции ВПР с именем диапазона

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

Если вы преобразовали диапазон ячеек в полнофункциональную таблицу Excel (вкладка «Вставка» –> «Таблица»), вы можете выбрать диапазон поиска с помощью мыши, а Microsoft Excel автоматически добавит имена колонок или имя таблицы в формулу:

Функция ВПР в Excel – Пример функции ВПР с именем таблицы

Полная формула может выглядеть примерно так:

или даже =ВПР(“Продукт 1”;Таблица6;2).

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

Постановка задачи

Итак, имеем две таблицы – таблицу заказов и прайс-лист:

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

Ошибки #Н/Д и их подавление

Функция ВПР (VLOOKUP) возвращает ошибку #Н/Д (#N/A) если:

  • Включен точный поиск (аргумент Интервальный просмотр=0) и искомого наименования нет в Таблице.
  • Включен приблизительный поиск (Интервальный просмотр=1), но Таблица, в которой происходит поиск не отсортирована по возрастанию наименований.
  • Формат ячейки, откуда берется искомое значение наименования (например B3 в нашем случае) и формат ячеек первого столбца (F3:F19) таблицы отличаются (например, числовой и текстовый). Этот случай особенно характерен при использовании вместо текстовых наименований числовых кодов (номера счетов, идентификаторы, даты и т.п.) В этом случае можно использовать функции Ч и ТЕКСТ для преобразования форматов данных. Выглядеть это будет примерно так:
    =ВПР(ТЕКСТ(B3);прайс;0)
  • Функция не может найти нужного значения, потому что в коде присутствуют пробелы или невидимые непечатаемые знаки (перенос строки и т.п.). В этом случае можно использовать текстовые функции СЖПРОБЕЛЫ (TRIM) и ПЕЧСИМВ (CLEAN) для их удаления:
    =ВПР(СЖПРОБЕЛЫ(ПЕЧСИМВ(B3));прайс;0)
    =VLOOKUP(TRIM(CLEAN(B3));прайс;0)

Для подавления сообщения об ошибке #Н/Д (#N/A) в тех случаях, когда функция не может найти точно соответствия, можно воспользоваться функцией ЕСЛИОШИБКА (IFERROR) . Так, например, вот такая конструкция перехватывает любые ошибки создаваемые ВПР и заменяет их нулями:

Аргументы функции

  • lookup_value(искомое_значение) – это величина для поиска, из крайнего левого столбца таблицы. Это может быть значение, ссылка на ячейку или текстовая строка. В примере со студентами это их фамилии;
  • table_array (таблица) – это диапазон данных, в котором будет осуществлен поиск. Это может быть ссылка на диапазон ячеек или именованный диапазон. В примере с таблицей со студентами, это будет вся таблица, которая содержит оценку и фамилии студентов;
  • col_index (номер_столбца) – это порядковый номер столбца в диапазоне с данными, из которого будет получена искомая величина;
  • [range lookup]([интервальный_просмотр]) – этот аргумент указывает на точность совпадения данных при поиске. Укажите “0” – если точное, “1” – если приблизительное совпадение.

Как пользоваться функцией ВПР в Excel

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

Стоимость материалов – в прайс-листе. Это отдельная таблица.

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

  1. Приведем первую таблицу в нужный нам вид. Добавим столбцы «Цена» и «Стоимость/Сумма». Установим денежный формат для новых ячеек.
  2. Выделяем первую ячейку в столбце «Цена». В нашем примере – D2. Вызываем «Мастер функций» с помощью кнопки «fx» (в начале строки формул) или нажав комбинацию горячих клавиш SHIFT+F3. В категории «Ссылки и массивы» находим функцию ВПР и жмем ОК. Данную функцию можно вызвать перейдя по закладке «Формулы» и выбрать из выпадающего списка «Ссылки и массивы».

Нажимаем ОК. А затем «размножаем» функцию по всему столбцу: цепляем мышью правый нижний угол и тянем вниз. Получаем необходимый результат.

Теперь найти стоимость материалов не составит труда: количество * цену.

Функция ВПР связала две таблицы. Если поменяется прайс, то и изменится стоимость поступивших на склад материалов (сегодня поступивших). Чтобы этого избежать, воспользуйтесь «Специальной вставкой».

  1. Выделяем столбец со вставленными ценами.
  2. Правая кнопка мыши – «Копировать».
  3. Не снимая выделения, правая кнопка мыши – «Специальная вставка».
  4. Поставить галочку напротив «Значения». ОК.

Формула в ячейках исчезнет. Останутся только значения.

Быстрое сравнение двух таблиц с помощью ВПР

Функция помогает сопоставить значения в огромных таблицах. Допустим, поменялся прайс. Нам нужно сравнить старые цены с новыми ценами.

    В старом прайсе делаем столбец «Новая цена».

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

Как работает функция ВПР в Excel: несколько примеров для «чайников».

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

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

Использование точного и приблизительного поиска.

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

Обратите внимание, что четвертый параметр равен 1.

Кое-что из результатов определено верно, но в большинстве случаев – ошибки. Функция продолжает просматривать данные столбца D с наименованиями товаров до тех пор, пока не встретит значение больше, чем заданное ей в качестве критерия поиска. Тогда она останавливается и возвращает цену.

Поиск цены на египетские бананы закончился на первой же позиции, так как во второй записаны сливы. А это слово по правилам алфавита стоит ниже, чем «Бананы Египет». Значит, дальше искать не нужно. Получили 145. И не важно, что это цена абрикосов. Поиск цены на сливы происходил до тех пор, пока в D15 не встретилось слово, которое по алфавиту стоит ниже: яблоки. Остановились и взяли цену из предыдущей строки.

А теперь взгляните, как должно было все происходить, если все делать верно. Всего лишь делаем сортировку, как указано стрелкой.

Вы спросите: «А зачем тогда этот неточный просмотр, если с ним столько проблем?»

Он отлично подходит для выбора значений из определенных интервалов.

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

Если у нас количество товара 11 единиц, то мы просматриваем столбец D до тех пор, пока не встретим число, большее 11. Это 20 и находится оно в 4-й строке. Останавливаемся здесь. Значит, наша скидка расположена в 3-й строке и равна 3%.

Использование нескольких условий.

Еще один простой пример для «чайников» – как использовать при выборе нужного значения несколько условий?

Предположим, у нас есть список имен и фамилий. Нам нужно найти нужного человека и вывести сумму его дохода.

В F2 используем следующую формулу:

Разберем пошагово, как в этом случае работает ВПР.

В начале мы формируем условие. Для этого при помощи оператора & «склеиваем» вместе имя и фамилию, а между ними вставляем пробел.

Не забываем при этом пробел заключить в кавычки, иначе Excel не воспримет его как текст.

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

Дальше все происходит по уже отработанной схеме.

Можно попробовать подстраховаться на тот случай, если между именем и фамилией введено несколько пробелов. Знак пробела в формуле заменяем на знак подстановки «*».

Как в excel перенести данные с одного листа на другой с определенных ячеек

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

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

Копирование таблицы с сохранением структуры

Если у вас есть одна или несколько таблиц, форматирование которых необходимо сохранять при переносе, то обычный метод Ctrl+CCtrl+V не даст нужного результата.

Исходная таблица

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

Искажённая таблица

Расширять вручную таблицы размером в 20-30 ячеек, тем более, когда у вас их несколько, не самая увлекательная задача. Однако существует несколько способов значительно упростить и оптимизировать весь процесс переноса при помощи инструментов, уже заложенных в программу.

Способ 1: Специальная вставка

Этот способ подойдёт в том случае, если из форматирования вам достаточно сохранить ширину столбцов и подтягивать дополнительные данные или формулы из другого файла/листа нет нужды.

  1. Выделите исходные таблицы и проведите обычный перенос комбинацией клавиш Ctrl+CCtrl+V.
  2. Как мы помним из предыдущего примера, ячейки получаются стандартного размера. Чтобы исправить это, выделите скопированный массив данных и кликните правой кнопкой по нему. В контекстном меню выберите пункт «Специальная вставка».

Контекстное меню

В результате у вас получится таблица идентичная той, что была в первом файле. Это удобно в том случае, если у вас десятки столбцов и выравнивать каждый, стандартными инструментами, нет времени/желания. Однако в этом методе есть недостаток — вам все равно придётся потратить немного времени, ведь изначально скопированная таблица не отвечает нашим запросам. Если это для вас неприемлемо, существует другой способ, при котором форматирование сохранится сразу при переносе.

Способ 2: Выделение столбцов перед копированием

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

Выделение строк

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

В каждом отдельном случае рациональней использовать свой способ. Однако он будет оптимален для небольших таблиц, где выделение области копирования не займёт у вас более двух минут. Соответственно, его удобно применять в большинстве случаев, так как в специальной вставке, рассмотренной выше, невозможно сохранить высоту строк. Если вам необходимо выровнять строки заранее – это лучший выбор. Но зачастую помимо самой таблицы необходимо перенести и формулы, что в ней хранятся. В этом случае подойдёт следующий метод.

Способ 3: Вставка формул с сохранением формата

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

Чтобы выполнить операцию, сделайте следующее:

  1. Выделите и скопируйте исходник.
  2. В контекстном меню вставки просто выберите «Значения» и подтвердите действие.

Вставка значений

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

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

Как в excel перенести данные с одного листа на другой с определенных ячеек

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

Easily select entire rows based on cell value in a certian column:

The Select Specific Cells utility of Kutools for Excel can help you quickly select entire rows based on cell value in a certian column in Excel as below screenshot shown. After selecting all rows based on cell value, you can manually move or copy them to a new location as you need in Excel.

Kutools for Excel: with more than 200 handy Excel add-ins, free to try with no limitation in 60 days. Download the free trial Now!

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

Как показано на скриншоте ниже, вам нужно переместить всю строку с Sheet1 на Sheet2, если в столбце C существует определенное слово «Done». Вы можете попробовать следующий код VBA.

1. Нажмите другой+ F11 клавиши одновременно, чтобы открыть Microsoft Visual Basic для приложений окно.

2. В окне Microsoft Visual Basic для приложений щелкните Вставить > Модули. Затем скопируйте и вставьте в окно приведенный ниже код VBA.

VBA code 1: Move entire row to another sheet based on cell value

Внимание: В коде Sheet1 содержит ли рабочий лист строку, которую вы хотите переместить. И Sheet2 — рабочий лист назначения, на котором вы найдете строку. « C: C »- столбец содержит определенное значение, а слово« Готово ”- это определенное значение, на основе которого вы переместите строку. Пожалуйста, измените их в соответствии с вашими потребностями.

3. нажмите F5 нажмите клавишу для запуска кода, то строка, соответствующая критериям Sheet1, будет немедленно перемещена на Sheet2.

Внимание: Приведенный выше код VBA удалит строки из исходных данных после перемещения на указанный рабочий лист. Если вы хотите копировать только строки на основе значения ячейки, а не удалять их. Пожалуйста, примените приведенный ниже код VBA 2.

VBA code 2: Copy entire row to another sheet based on cell value

Переместить всю строку на другой лист на основе значения ячейки с помощью Kutools for Excel

Если вы новичок в коде VBA. Здесь я представляю Выбрать определенные ячейки полезности Kutools for Excel. С помощью этой утилиты вы можете легко выбрать все строки на основе определенного значения ячейки или разных значений ячеек на листе и скопировать выбранные строки на рабочий лист назначения по мере необходимости. Пожалуйста, сделайте следующее.

Перед применением Kutools for Excel, Пожалуйста, сначала скачайте и установите.

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

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

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

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

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

Если вы хотите получить бесплатную (30-дневную) пробную версию этой утилиты, пожалуйста, нажмите, чтобы загрузить это, а затем перейдите к применению операции в соответствии с указанными выше шагами.

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

Переместить всю строку на другой лист на основе значения ячейки с кодом VBA
Переместите всю строку на другой лист на основе значения ячейки с помощью Kutools for Excel


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

Как показано на скриншоте ниже, вам нужно переместить всю строку с Sheet1 на Sheet2, если в столбце C существует определенное слово «Done». Вы можете попробовать следующий код VBA.

1. Нажмите другой+ F11 клавиши одновременно, чтобы открыть Microsoft Visual Basic для приложений окно.

2. В окне Microsoft Visual Basic для приложений щелкните Вставить > Модули. Затем скопируйте и вставьте в окно приведенный ниже код VBA.

VBA code 1: Move entire row to another sheet based on cell value

Sub Cheezy()
'Updated by Kutools for Excel 2017/8/28
    Dim xRg As Range
    Dim xCell As Range
    Dim I As Long
    Dim J As Long
    Dim K As Long
    I = Worksheets("Sheet1").UsedRange.Rows.Count
    J = Worksheets("Sheet2").UsedRange.Rows.Count
    If J = 1 Then
       If Application.WorksheetFunction.CountA(Worksheets("Sheet2").UsedRange) = 0 Then J = 0
    End If
    Set xRg = Worksheets("Sheet1").Range("C1:C" & I)
    On Error Resume Next
    Application.ScreenUpdating = False
    For K = 1 To xRg.Count
        If CStr(xRg(K).Value) = "Done" Then
            xRg(K).EntireRow.Copy Destination:=Worksheets("Sheet2").Range("A" & J + 1)
            xRg(K).EntireRow.Delete
            If CStr(xRg(K).Value) = "Done" Then
                K = K - 1
            End If
            J = J + 1
        End If
    Next
    Application.ScreenUpdating = True
End Sub

Внимание: В коде Sheet1 содержит ли рабочий лист строку, которую вы хотите переместить. И Sheet2 — рабочий лист назначения, на котором вы найдете строку. «C: C»- столбец содержит определенное значение, а слово«Готово”- это определенное значение, на основе которого вы переместите строку. Пожалуйста, измените их в соответствии с вашими потребностями.

3. нажмите F5 нажмите клавишу для запуска кода, то строка, соответствующая критериям Sheet1, будет немедленно перемещена на Sheet2.

Внимание: Приведенный выше код VBA удалит строки из исходных данных после перемещения на указанный рабочий лист. Если вы хотите копировать только строки на основе значения ячейки, а не удалять их. Пожалуйста, примените приведенный ниже код VBA 2.

VBA code 2: Copy entire row to another sheet based on cell value

Sub MoveRowBasedOnCellValue()
'Updated by Extendoffice 2017/11/10
    Dim xRg As Range
    Dim xCell As Range
    Dim I As Long
    Dim J As Long
    Dim K As Long
    I = Worksheets("Sheet1").UsedRange.Rows.Count
    J = Worksheets("Sheet2").UsedRange.Rows.Count
    If J = 1 Then
    If Application.WorksheetFunction.CountA(Worksheets("Sheet2").UsedRange) = 0 Then J = 0
    End If
    Set xRg = Worksheets("Sheet1").Range("C1:C" & I)
    On Error Resume Next
    Application.ScreenUpdating = False
    For K = 1 To xRg.Count
        If CStr(xRg(K).Value) = "Done" Then
            xRg(K).EntireRow.Copy Destination:=Worksheets("Sheet2").Range("A" & J + 1)
            J = J + 1
        End If
    Next
    Application.ScreenUpdating = True
End Sub

Переместите всю строку на другой лист на основе значения ячейки с помощью Kutools for Excel

Если вы новичок в коде VBA. Здесь я представляю Выбрать определенные ячейки полезности Kutools for Excel. С помощью этой утилиты вы можете легко выбрать все строки на основе определенного значения ячейки или разных значений ячеек на листе и скопировать выбранные строки на рабочий лист назначения по мере необходимости. Пожалуйста, сделайте следующее.

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

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

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

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

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

  Если вы хотите получить бесплатную пробную версию (30-день) этой утилиты, пожалуйста, нажмите, чтобы загрузить это, а затем перейдите к применению операции в соответствии с указанными выше шагами.


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

  • Как переместить всю строку в нижнюю часть активного листа на основе значения ячейки в 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% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Понравилась статья? Поделить с друзьями:
  • Excel перенос текста на следующую строку в ячейке
  • Excel пересечение двух столбцов
  • Excel перенос текста на новую строчку
  • Excel переносы строк не работают
  • Excel перенос текста на новую строку в одной ячейке