Форум программистов, компьютерный форум, киберфорум
MS Office Excel
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.74/34: Рейтинг темы: голосов - 34, средняя оценка - 4.74
7 / 7 / 1
Регистрация: 02.03.2011
Сообщений: 310
1

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

27.06.2021, 14:05. Показов 6658. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Приветствую!
Есть прайс лист на 1000 позиций в excel,
нужно сделать второй лист, чтоб там отображались только те строки прайса, у которых столбец "Количество" не пустой.
То есть строки добавлялись по условию, на листе прайса она например 10, а на новом листе она окажется первой.
Подскажите решение задачи)

НазваниеКод товараЦенаКол-воСуммаМагазин
Кабель силовой ВВГ-Пнг(А)-LS 2*1.5184775743,55  ЭТМ
Кабель силовой ВВГ-Пнг(А)-LS 3*1.5524295562,041 ЭТМ
Кабель силовой ВВГ-нг(А)-LS 4*1.5675120383,11  ЭТМ
Кабель силовой ВВГ-Пнг(А)-LS 2х2.5717459469,841 ЭТМ

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

НазваниеКод товараЦенаКол-воСуммаМагазин
Кабель силовой ВВГ-Пнг(А)-LS 3*1.5524295562,04162,04ЭТМ
Кабель силовой ВВГ-Пнг(А)-LS 2х2.5717459469,84169,84ЭТМ
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.06.2021, 14:05
Ответы с готовыми решениями:

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

Добавление в таблицу новых строк по определенному условию (Entity Framework)
Всем здравствуйте! Помогите, пожалуйста, разобраться. Новая для меня ветка в разработке. Прочекал...

Функции работы со строками символов: определение размера строки, копирование строк, добавление строк, сравнение строк
На языке Ассемблер написать функции работы со строками символов: определение размера строки,...

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

11
Динохромный
1400 / 763 / 284
Регистрация: 22.12.2015
Сообщений: 2,387
27.06.2021, 14:33 2
xxxspeed, отфильтруйте фильтром по строке "кол-во" и скопируйте отфильтрованные значения на новый лист путем обычного выделить-копировать-вставить.
0
7 / 7 / 1
Регистрация: 02.03.2011
Сообщений: 310
27.06.2021, 14:35  [ТС] 3
Это понятно, мне просто нужно автоматом, что б все делалось.
При изменении листа прайс, данные сразу менялись на втором листе.

Я написал формулы, чтоб на втором листе данные сразу отображались, но они отображаются в тех же строках.
Можно отсортировать и все будет ок.
Если есть вариант с авто сортировкой, при изменении таблица автоматически заново сортируется.
0
Динохромный
1400 / 763 / 284
Регистрация: 22.12.2015
Сообщений: 2,387
27.06.2021, 14:46 4
Цитата Сообщение от xxxspeed Посмотреть сообщение
Либо если есть вариант с авто сортировкой, при изменении таблица автоматически заново сортируется.
Сложно сказать - кроме вас вашу таблицу никто видел.
Если таблицу оформить через ctrl+L как умную таблицу, и она на листе единственная - то достаточно в модуль листа скопировать код:
Visual Basic
1
2
3
Private Sub Worksheet_Change(ByVal Target As Range)
Me.ListObjects.Item(1).Range.AutoFilter Field:=4, Criteria1:="<>"
End Sub
Только если вы вручную вбиваете новые данные - начинайте с 4 столбца - который "количество", иначе таблица скроет новую строчку раньше, чем вы успеете ввести все ячейки строки. С копированием проблем быть не должно.
1
7 / 7 / 1
Регистрация: 02.03.2011
Сообщений: 310
27.06.2021, 15:48  [ТС] 5
Цитата Сообщение от Dinoxromniy Посмотреть сообщение
Сложно сказать - кроме вас вашу таблицу никто видел.
Краткий фрагмент таблицы я опубликовал.

С листа прайс на второй лист данные я переношу формулой =ЕСЛИ(Прайс!$D2="";"";Прайс!A2).

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

Добавлено через 12 минут
Поправлюсь, при изменении колонки D (а лучше при изменении колонки в которой написано "Кол-во") на первом листе, срабатывал этот код на втором листе.
Потому что когда вышеуказанная формула изменяет выводимые значения код не срабатывает.
0
6024 / 3216 / 720
Регистрация: 23.11.2010
Сообщений: 10,743
27.06.2021, 16:11 6
Цитата Сообщение от xxxspeed Посмотреть сообщение
Краткий фрагмент таблицы я опубликовал
это картинка, тут даже названий столбцов не видно, это к тому
Цитата Сообщение от xxxspeed Посмотреть сообщение
при изменении колонки D
0
7 / 7 / 1
Регистрация: 02.03.2011
Сообщений: 310
27.06.2021, 16:23  [ТС] 7
Цитата Сообщение от Fairuza Посмотреть сообщение
это картинка, тут даже названий столбцов не видно, это к тому
Верно подмечено, извиняюсь.
Вот файл с добавленным кодом,
с кодом файл не поддерживается сайтом
0
7 / 7 / 1
Регистрация: 02.03.2011
Сообщений: 310
27.06.2021, 16:27  [ТС] 8
Вот файл, но без кода
Вложения
Тип файла: xlsx Прайс.xlsx (14.9 Кб, 8 просмотров)
0
7 / 7 / 1
Регистрация: 02.03.2011
Сообщений: 310
27.06.2021, 16:31  [ТС] 9
Вот файл.
В файле выше из за удаления кода не корректный второй лист.
Вложения
Тип файла: xlsx Прайс.xlsx (12.5 Кб, 13 просмотров)
0
7 / 7 / 1
Регистрация: 02.03.2011
Сообщений: 310
27.06.2021, 16:53  [ТС] 10
Вопрос вроде решился, разобрался.
При переключении на второй лист происходит обновление.
Изменил код вот так:
Visual Basic
1
2
3
Private Sub Worksheet_Activate()
Me.ListObjects.Item(1).Range.AutoFilter Field:=4, Criteria1:="<>"
End Sub
0
Динохромный
1400 / 763 / 284
Регистрация: 22.12.2015
Сообщений: 2,387
29.06.2021, 10:08 11
xxxspeed, прошу прощения - руки не дошли написать.
Ваше решение оптимально, единственно - саму таблицу второго листа нужно руками растягивать (ну или изначально она должна быть много больше, чем на первом). В принципе, это можно программно делать. Насколько у вас актуально добавление строк в первую таблицу (если всего строк 1000, то во второй таблице можно сделать сразу 2000 и не париться с дополнительными решениями. Либо вставлять новые строки в табл2 каждый раз, когда добавились строки в табл1).
0
7 / 7 / 1
Регистрация: 02.03.2011
Сообщений: 310
29.06.2021, 21:59  [ТС] 12
Цитата Сообщение от Dinoxromniy Посмотреть сообщение
Ваше решение оптимально
Вот еще решение которое мне подсказали

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Private Sub Worksheet_Activate()
Dim sh As Worksheet, sh2 As Worksheet, arr, arr2, i As Long, n As Long, x As Long, k As Long, lr As Long, lr2 As Long
Set sh = Worksheets("Прайс"): Set sh2 = Worksheets("Прайс2")
lr = sh.Cells(Rows.Count, 1).End(xlUp).Row
lr2 = sh2.Cells(Rows.Count, 1).End(xlUp).Row
arr = sh.Range("A1:G" & lr)
k = Application.WorksheetFunction.CountIf(sh.Columns(4), "<>" & "")
ReDim arr2(1 To k, 1 To 7): x = 1
For i = LBound(arr) To UBound(arr)
    If Not IsEmpty(arr(i, 4)) Then
        For n = 1 To 7
            arr2(x, n) = arr(i, n)
        Next n
        x = x + 1
    End If
Next i
If lr2 >= 4 Then sh2.Range("A4:G" & lr2).Clear
sh2.Range("A4").Resize(UBound(arr2), 7) = arr2
End Sub
Подскажите только как изменить путь к листу в
Visual Basic
1
Set sh2 = Worksheets("Прайс2")
,
и в коде
Visual Basic
1
2
3
Private Sub Worksheet_Activate()
Me.ListObjects.Item(1).Range.AutoFilter Field:=4, Criteria1:="<>"
End Sub
чтоб копировал данные в другой файл.

Но в том решении есть свой плюс. Остаются рамки в таблице
0
29.06.2021, 21:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.06.2021, 21:59
Помогаю со студенческими работами здесь

Добавление записи в БД по условию
можно ли как то сделать добавления в бд по условию? $result=mysql_query(&quot;INSERT INTO...

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

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

Добавление в строку символа по условию
public string Addsymboldublicate(string _opentext) { for (int r = 0; r &lt;...

Добавление строк в TStringList и нахождение количества одинаковых строк
Задача такова: 1) Добавить несколько строк с текстом 2) Определить кол-во одинак.строк (при чем...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru