Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Столбец, фильтрующийся на основе ячейки - Мир MS Excel

  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_, DrMini  
Столбец, фильтрующийся на основе ячейки
iilfat Дата: Пятница, 24.07.2015, 15:29 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 69
Репутация: 0 ±
Замечаний: 40% ±

Excel 2013
И вот возник ещё один вопрос.
Я составил пример, прикрепил.

В примере есть один столбец на листе1 и одна ячейка с синими границами на листе2 :)

Можно ли сделать так, чтобы при условии, что в синей ячейке (на листе2) написано "жираф", в фильтре (на листе1) выбирались только жирафы. А если там написано "собака", то в фильтре выбирались только собаки?

Спасибо :)
К сообщению приложен файл: 0774544.xlsx (10.0 Kb)
 
Ответить
СообщениеИ вот возник ещё один вопрос.
Я составил пример, прикрепил.

В примере есть один столбец на листе1 и одна ячейка с синими границами на листе2 :)

Можно ли сделать так, чтобы при условии, что в синей ячейке (на листе2) написано "жираф", в фильтре (на листе1) выбирались только жирафы. А если там написано "собака", то в фильтре выбирались только собаки?

Спасибо :)

Автор - iilfat
Дата добавления - 24.07.2015 в 15:29
iilfat Дата: Пятница, 24.07.2015, 15:33 | Сообщение № 2
Группа: Пользователи
Ранг: Участник
Сообщений: 69
Репутация: 0 ±
Замечаний: 40% ±

Excel 2013
Хотя я не уверен, что это сделается именно через коды в макросе, так что, возможно, не в ту тему написал
 
Ответить
СообщениеХотя я не уверен, что это сделается именно через коды в макросе, так что, возможно, не в ту тему написал

Автор - iilfat
Дата добавления - 24.07.2015 в 15:33
_Boroda_ Дата: Пятница, 24.07.2015, 15:40 | Сообщение № 3
Группа: Админы
Ранг: Местный житель
Сообщений: 17005
Репутация: 6667 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Топчете правой мышой на ярлычок листа2, Исходный код, в появившемся окне вставляете вот это
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
        If Target.Address(0, 0) <> "B2" Then Exit Sub
        Sheets("Лист1").ListObjects("Таблица2").Range.AutoFilter Field:=1, Criteria1:=Target
End Sub
[/vba]
К сообщению приложен файл: 0774544_1.xlsm (25.3 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТопчете правой мышой на ярлычок листа2, Исходный код, в появившемся окне вставляете вот это
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
        If Target.Address(0, 0) <> "B2" Then Exit Sub
        Sheets("Лист1").ListObjects("Таблица2").Range.AutoFilter Field:=1, Criteria1:=Target
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 24.07.2015 в 15:40
iilfat Дата: Пятница, 24.07.2015, 15:44 | Сообщение № 4
Группа: Пользователи
Ранг: Участник
Сообщений: 69
Репутация: 0 ±
Замечаний: 40% ±

Excel 2013
_Boroda_, господи, неужели в экселе всё возможно? Спасибо огромное.
Сейчас попытаюсь применить это к своему файлу :)
 
Ответить
Сообщение_Boroda_, господи, неужели в экселе всё возможно? Спасибо огромное.
Сейчас попытаюсь применить это к своему файлу :)

Автор - iilfat
Дата добавления - 24.07.2015 в 15:44
iilfat Дата: Пятница, 24.07.2015, 15:50 | Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 69
Репутация: 0 ±
Замечаний: 40% ±

Excel 2013
_Boroda_, тут ещё такая проблема образовалась. Фильтр не обновляется. То есть, например, если ячейка будет ссылкой на другую ячейку, а после этого другую ячейку поменять на "зебра", то фильтр не обновится.

Короче, я сейчас нормальный пример составлю и внятно спрошу, если можно)


Сообщение отредактировал iilfat - Пятница, 24.07.2015, 15:58
 
Ответить
Сообщение_Boroda_, тут ещё такая проблема образовалась. Фильтр не обновляется. То есть, например, если ячейка будет ссылкой на другую ячейку, а после этого другую ячейку поменять на "зебра", то фильтр не обновится.

Короче, я сейчас нормальный пример составлю и внятно спрошу, если можно)

Автор - iilfat
Дата добавления - 24.07.2015 в 15:50
китин Дата: Пятница, 24.07.2015, 15:59 | Сообщение № 6
Группа: Модераторы
Ранг: Экселист
Сообщений: 7040
Репутация: 1080 ±
Замечаний: 0% ±

Excel 2007;2010;2016
а можно и формулами,наверное
Код
=ЕСЛИОШИБКА(ИНДЕКС(Таблица2[Животное];НАИБОЛЬШИЙ(ЕСЛИ(Таблица2[Животное]=Лист2!$B$2;СТРОКА(Лист1!$A$1:$A$25));СТРОКА(Лист2!A1)));"")
формула массива
упс не так понял. :'( но оставлю,может прогодится кому
К сообщению приложен файл: iilfat.xlsx (11.0 Kb)


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852


Сообщение отредактировал китин - Пятница, 24.07.2015, 16:09
 
Ответить
Сообщениеа можно и формулами,наверное
Код
=ЕСЛИОШИБКА(ИНДЕКС(Таблица2[Животное];НАИБОЛЬШИЙ(ЕСЛИ(Таблица2[Животное]=Лист2!$B$2;СТРОКА(Лист1!$A$1:$A$25));СТРОКА(Лист2!A1)));"")
формула массива
упс не так понял. :'( но оставлю,может прогодится кому

Автор - китин
Дата добавления - 24.07.2015 в 15:59
iilfat Дата: Пятница, 24.07.2015, 16:11 | Сообщение № 7
Группа: Пользователи
Ранг: Участник
Сообщений: 69
Репутация: 0 ±
Замечаний: 40% ±

Excel 2013
Короче, вот.
На листе Sample находится сводная таблица. Там есть ячейка для Customer name. Если Customer name такой-то, то и в листе SAP в фильтре в столбце Customer name должны быть выбраны только такие-то.

Customer name в сводной таблице выбирается вручную. И сразу после этого выбора должен обновиться фильтр.

Извините, что достаю.
Заранее спасибо.
К сообщению приложен файл: 4858342.xlsx (30.7 Kb)


Сообщение отредактировал iilfat - Пятница, 24.07.2015, 16:12
 
Ответить
СообщениеКороче, вот.
На листе Sample находится сводная таблица. Там есть ячейка для Customer name. Если Customer name такой-то, то и в листе SAP в фильтре в столбце Customer name должны быть выбраны только такие-то.

Customer name в сводной таблице выбирается вручную. И сразу после этого выбора должен обновиться фильтр.

Извините, что достаю.
Заранее спасибо.

Автор - iilfat
Дата добавления - 24.07.2015 в 16:11
krosav4ig Дата: Пятница, 24.07.2015, 16:13 | Сообщение № 8
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
вариант с расширенным фильтром, таблица на листе1 фильтруется по всем значениям введенным на листе2
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
     With [criteria[#All]]
         If Not Intersect(Target, .Resize(.Rows.Count + 1)) Is Nothing Then _
             [Таблица2[#All]].AdvancedFilter 1, .Rows(1).Resize(Application.CountA(.Columns(1))), 0
     End With
End Sub
[/vba]
К сообщению приложен файл: 0774544.xlsm (17.9 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениевариант с расширенным фильтром, таблица на листе1 фильтруется по всем значениям введенным на листе2
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
     With [criteria[#All]]
         If Not Intersect(Target, .Resize(.Rows.Count + 1)) Is Nothing Then _
             [Таблица2[#All]].AdvancedFilter 1, .Rows(1).Resize(Application.CountA(.Columns(1))), 0
     End With
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 24.07.2015 в 16:13
_Boroda_ Дата: Пятница, 24.07.2015, 16:51 | Сообщение № 9
Группа: Админы
Ранг: Местный житель
Сообщений: 17005
Репутация: 6667 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
в сводной таблице

Дык это ж совсем другое дело
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
         If Intersect(Target, [A1]) Is Nothing Then Exit Sub
         Sheets("SAP").Range("$A$1:$D$699").AutoFilter Field:=1, Criteria1:=[B1]
End Sub
[/vba]
К сообщению приложен файл: 4858342_1.xlsm (38.4 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
в сводной таблице

Дык это ж совсем другое дело
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
         If Intersect(Target, [A1]) Is Nothing Then Exit Sub
         Sheets("SAP").Range("$A$1:$D$699").AutoFilter Field:=1, Criteria1:=[B1]
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 24.07.2015 в 16:51
krosav4ig Дата: Пятница, 24.07.2015, 18:16 | Сообщение № 10
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
вариант с допстолбцом и сводной со срезом
К сообщению приложен файл: 2132463.xlsx (69.3 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениевариант с допстолбцом и сводной со срезом

Автор - krosav4ig
Дата добавления - 24.07.2015 в 18:16
Nic70y Дата: Пятница, 24.07.2015, 20:36 | Сообщение № 11
Группа: Друзья
Ранг: Экселист
Сообщений: 9223
Репутация: 2478 ±
Замечаний: 0% ±

Excel 2010
Топчете правой мышой
[offtop]А сколь их у тебя?[/offtop]


ЮMoney 41001841029809
 
Ответить
Сообщение
Топчете правой мышой
[offtop]А сколь их у тебя?[/offtop]

Автор - Nic70y
Дата добавления - 24.07.2015 в 20:36
_Boroda_ Дата: Пятница, 24.07.2015, 21:02 | Сообщение № 12
Группа: Админы
Ранг: Местный житель
Сообщений: 17005
Репутация: 6667 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
[offtop]На работе две.
Свою я ставлю на 6400dpi, поэтому никто больше ей работать не может, а вторую, обычную, даю тому, кому что-нибудь показываю.
Предваряя вопрос, сразу скажу, что мониторов у меня там тоже два, и клав две.
Кстати, я когда в Сбере работал, у меня был свой угол с шестью компьютерами и кресло на колесиках. Так на это шоу клиенты знакомых специально приводили смотреть.


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение[offtop]На работе две.
Свою я ставлю на 6400dpi, поэтому никто больше ей работать не может, а вторую, обычную, даю тому, кому что-нибудь показываю.
Предваряя вопрос, сразу скажу, что мониторов у меня там тоже два, и клав две.
Кстати, я когда в Сбере работал, у меня был свой угол с шестью компьютерами и кресло на колесиках. Так на это шоу клиенты знакомых специально приводили смотреть.

Автор - _Boroda_
Дата добавления - 24.07.2015 в 21:02
Nic70y Дата: Пятница, 24.07.2015, 21:35 | Сообщение № 13
Группа: Друзья
Ранг: Экселист
Сообщений: 9223
Репутация: 2478 ±
Замечаний: 0% ±

Excel 2010
[offtop]вот когда я работал директором, то ваще забросил комп, только девки, водка, налоговая, прокуратура...
[/offtop]


ЮMoney 41001841029809
 
Ответить
Сообщение[offtop]вот когда я работал директором, то ваще забросил комп, только девки, водка, налоговая, прокуратура...
[/offtop]

Автор - Nic70y
Дата добавления - 24.07.2015 в 21:35
iilfat Дата: Понедельник, 27.07.2015, 14:24 | Сообщение № 14
Группа: Пользователи
Ранг: Участник
Сообщений: 69
Репутация: 0 ±
Замечаний: 40% ±

Excel 2013
_Boroda_, а вот в этом коде

[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [A1]) Is Nothing Then Exit Sub
Sheets("SAP").Range("$A$1:$D$699").AutoFilter Field:=1, Criteria1:=[B1]
End Sub
[/vba]

"$A$1:$D$699" указывает всю таблицу?
Таблица всегда разной будет. Знаю только количество столбцов. Хотелось бы указать в формате C1:C21

[A1] - это ячейка, где фильтрованный заголовок интересующего меня столбца?


Сообщение отредактировал iilfat - Понедельник, 27.07.2015, 14:54
 
Ответить
Сообщение_Boroda_, а вот в этом коде

[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [A1]) Is Nothing Then Exit Sub
Sheets("SAP").Range("$A$1:$D$699").AutoFilter Field:=1, Criteria1:=[B1]
End Sub
[/vba]

"$A$1:$D$699" указывает всю таблицу?
Таблица всегда разной будет. Знаю только количество столбцов. Хотелось бы указать в формате C1:C21

[A1] - это ячейка, где фильтрованный заголовок интересующего меня столбца?

Автор - iilfat
Дата добавления - 27.07.2015 в 14:24
iilfat Дата: Понедельник, 27.07.2015, 14:43 | Сообщение № 15
Группа: Пользователи
Ранг: Участник
Сообщений: 69
Репутация: 0 ±
Замечаний: 40% ±

Excel 2013
И вообще, почему-то он фильтрует по первому столбцу. В моей таблице самофильтрующийся (как хотелось бы) столбец - третий.

Выложить непосредственно свой вариант не могу, много весит.


Сообщение отредактировал iilfat - Понедельник, 27.07.2015, 15:16
 
Ответить
СообщениеИ вообще, почему-то он фильтрует по первому столбцу. В моей таблице самофильтрующийся (как хотелось бы) столбец - третий.

Выложить непосредственно свой вариант не могу, много весит.

Автор - iilfat
Дата добавления - 27.07.2015 в 14:43
iilfat Дата: Понедельник, 27.07.2015, 15:18 | Сообщение № 16
Группа: Пользователи
Ранг: Участник
Сообщений: 69
Репутация: 0 ±
Замечаний: 40% ±

Excel 2013
Ура, получилось, все вопросы закрыты :)
Почему-то только независимо от того, что находится в ячейке [A1], код работает)
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [A1]) Is Nothing Then Exit Sub
Sheets("SAP").Range("$A$1:$D$699").AutoFilter Field:=1, Criteria1:=[B1]
End Sub
[/vba]


Сообщение отредактировал iilfat - Понедельник, 27.07.2015, 15:21
 
Ответить
СообщениеУра, получилось, все вопросы закрыты :)
Почему-то только независимо от того, что находится в ячейке [A1], код работает)
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [A1]) Is Nothing Then Exit Sub
Sheets("SAP").Range("$A$1:$D$699").AutoFilter Field:=1, Criteria1:=[B1]
End Sub
[/vba]

Автор - iilfat
Дата добавления - 27.07.2015 в 15:18
iilfat Дата: Вторник, 28.07.2015, 11:16 | Сообщение № 17
Группа: Пользователи
Ранг: Участник
Сообщений: 69
Репутация: 0 ±
Замечаний: 40% ±

Excel 2013
удалил


Сообщение отредактировал iilfat - Вторник, 28.07.2015, 11:53
 
Ответить
Сообщениеудалил

Автор - iilfat
Дата добавления - 28.07.2015 в 11:16
iilfat Дата: Вторник, 28.07.2015, 11:35 | Сообщение № 18
Группа: Пользователи
Ранг: Участник
Сообщений: 69
Репутация: 0 ±
Замечаний: 40% ±

Excel 2013
В общем, я сейчас поставлю задачу. С примером. Думаю, это будет последним штрихом)
Надеюсь на вашу помощь)
 
Ответить
СообщениеВ общем, я сейчас поставлю задачу. С примером. Думаю, это будет последним штрихом)
Надеюсь на вашу помощь)

Автор - iilfat
Дата добавления - 28.07.2015 в 11:35
iilfat Дата: Вторник, 28.07.2015, 11:51 | Сообщение № 19
Группа: Пользователи
Ранг: Участник
Сообщений: 69
Репутация: 0 ±
Замечаний: 40% ±

Excel 2013
Есть у меня вот файл из двух листов.
Мне нужно запустить следующий макрос:
1) отфильтровать лист "SAP" следующим образом:
[vba]
Код
ActiveSheet.Range("C1:C4").AutoFilter 2, "<=" & Application.EoMonth(Date, -2)
[/vba]
2) если в листе "Сверка" в ячейке B3 написано "111", то в листе "SAP" отфильтровать столбец "SKU" по "111" и из оставшихся ячеек сумму 3-го и 4-го столбцов вместе взятых отправить в ячейку C3 листа "Сверка",
3) вернуть фильтр листа "SAP" в исходное положение (в каком оно было после пункта 1),
4) если в листе "Сверка" в ячейке B4 написано "222", то в листе "SAP" отфильтровать столбец "SKU" по "222" и из оставшихся ячеек сумму 3-го и 4-го столбцов вместе взятых отправить в ячейку C3 листа "Сверка",
5) вернуть фильтр листа "SAP" в исходное положение (в каком оно было после пункта 1)...
и т.д.

Тут, наверное, важно отметить, что количество строк может быть разным. Иногда до B10 дойдем, а иногда на B4 останемся. Основываться можно на том, что если в столбце B нет чего-то из фильтра, то ничего рядом заполнять не нужно.
Надеюсь, я всё хорошо сформулировал. И если всё получится, я перестану вас доставать нубовскими вопросами :) \

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

Спасибо :)
К сообщению приложен файл: 2206075.xlsm (65.3 Kb)


Сообщение отредактировал iilfat - Вторник, 28.07.2015, 11:58
 
Ответить
СообщениеЕсть у меня вот файл из двух листов.
Мне нужно запустить следующий макрос:
1) отфильтровать лист "SAP" следующим образом:
[vba]
Код
ActiveSheet.Range("C1:C4").AutoFilter 2, "<=" & Application.EoMonth(Date, -2)
[/vba]
2) если в листе "Сверка" в ячейке B3 написано "111", то в листе "SAP" отфильтровать столбец "SKU" по "111" и из оставшихся ячеек сумму 3-го и 4-го столбцов вместе взятых отправить в ячейку C3 листа "Сверка",
3) вернуть фильтр листа "SAP" в исходное положение (в каком оно было после пункта 1),
4) если в листе "Сверка" в ячейке B4 написано "222", то в листе "SAP" отфильтровать столбец "SKU" по "222" и из оставшихся ячеек сумму 3-го и 4-го столбцов вместе взятых отправить в ячейку C3 листа "Сверка",
5) вернуть фильтр листа "SAP" в исходное положение (в каком оно было после пункта 1)...
и т.д.

Тут, наверное, важно отметить, что количество строк может быть разным. Иногда до B10 дойдем, а иногда на B4 останемся. Основываться можно на том, что если в столбце B нет чего-то из фильтра, то ничего рядом заполнять не нужно.
Надеюсь, я всё хорошо сформулировал. И если всё получится, я перестану вас доставать нубовскими вопросами :) \

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

Спасибо :)

Автор - iilfat
Дата добавления - 28.07.2015 в 11:51
_Boroda_ Дата: Вторник, 28.07.2015, 11:58 | Сообщение № 20
Группа: Админы
Ранг: Местный житель
Сообщений: 17005
Репутация: 6667 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
А не проще формулой?
Например,
Код
=СУММЕСЛИ(SAP!A$2:A$1241;[@СТОЛБЕЦ2];SAP!C$2:C$1241)+СУММЕСЛИ(SAP!A$2:A$1241;[@СТОЛБЕЦ2];SAP!D$2:D$1241)

Или через СУММПРОИЗВ, или еще как-нибудь.
К сообщению приложен файл: 2206075_1.xlsm (66.2 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеА не проще формулой?
Например,
Код
=СУММЕСЛИ(SAP!A$2:A$1241;[@СТОЛБЕЦ2];SAP!C$2:C$1241)+СУММЕСЛИ(SAP!A$2:A$1241;[@СТОЛБЕЦ2];SAP!D$2:D$1241)

Или через СУММПРОИЗВ, или еще как-нибудь.

Автор - _Boroda_
Дата добавления - 28.07.2015 в 11:58
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2026 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!