PDA

Показать полную графическую версию : [решено] Сделать выборку в таблице


Ser6720
21-10-2010, 18:43
Excel 2003
На картинке таблица, просто пример, реальная таблица в несколько тысяч строк.
http://ib1.keep4u.ru/s/2010/10/21/e9/e9bab23dd349bbbbf6df374d968a77f1.jpg (http://keep4u.ru/full/e9bab23dd349bbbbf6df374d968a77f1.html)
Можно ли в такой таблице сделать выборку по дате.
Дата указана в столбцах H,I,J.
Пример: нужно выбрать (найти) всех с датой 05.10.09. или любой другой.

Coutty
21-10-2010, 19:20
На ум приходит решение "в лоб":
1. Создать ячейку, в которую будете вводить дату (пусть, например, это будет А9)
2. Добавить один столбец с примитивной, но работающей формулой: =ЕСЛИ(H2=$A$9;1;ЕСЛИ(I2=$A$9;1;ЕСЛИ(J2=$A$9;1;0)))
3. Растянуть формулу по столбцу (не знаю, есть ли там функция "заполнить" или вручную придётся тянуть)
4. Делать выборку (ставить фильтр) по этому дополнительному столбцу. Соответственно, либо 0 (не найдено), либо 1 (найдено).
Может есть и функция поиска, но я как-то не вникал...

Нашёл функцию проще: =СЧЁТЕСЛИ(H2:J2;$A$9). И также растянуть. Возвращает количество вхождений в диапазон. 0 - не найдено, больше нуля - найдено.

Ser6720
21-10-2010, 19:57
Немного ошибся с постановкой задачи.
Число месяца не имеет значения, число может быть любым, важен только месяц и год.
Т.о. надо найти всех с датой **.10.09

okshef
21-10-2010, 21:42
По-моему, проще воспользоваться фильтрами (http://shkola.lv/index.php?mode=cht&chtid=505)

Ser6720
21-10-2010, 23:11
okshef,
Спасибо.
С одиночной датой, например 05.10.09, всё получается, фильтр находит все строки с такой датой.
Такой поиск решает часть проблем.
Однако, если задаю условие - больше 01.10.09 или меньше 30.10.09 или ставлю знак "?" вместо числа месяца, то не получается,
фильтр не понимает такой конструкции.
Как задать условие поиска по месяцу и году без учёта числа или в диапазоне, например 01.10.09-15.10.09.

okshef
21-10-2010, 23:31
Ser6720, к сожалению, не могу воспроизвести - 2003-й только на работе. Нужно искать пользовательские настройки диапазона дат. В 2010-м - намного проще: в нем в контекстном меню фильтра по дате 15-20 готовых варианта.

Delirium
22-10-2010, 01:39
Ну как вариант(в примере ищет только по одной дате) написать небольшой макрос, что то вроде такого:

Dim i As Integer
Dim j As Integer

With Selection 'Выделяем нужный столбец
i = .Rows.Count 'Получаем количество выделенных строк
'j = .Columns.Count 'Получаем количество выделенных столбцов
For Row = 1 To i ' Цикл от 1 до количество строк
If Month(Cells(Row, 1)) = Cells(1, 2) And Year(Cells(Row, 1)) = Cells(1, 3) Then
Cells(Row, 4) = 1
Else
Cells(Row, 4) = 0
End If
Next
End With
End Sub
В примере цикл по первому столбу сверяет значение месяца и года с ячейками B1 и C1 соответственно. Т.е. у меня была такая структура:


01.01.2010 2 2010 0
02.02.2010 1
06.03.2010 0
07.04.2010 0
09.05.2010 0
Дополнив условия, можно сделать и диапазон ячеек.

Ser6720
25-10-2010, 19:02
Спасибо всем, дальше буду сам.




© OSzone.net 2001-2012