Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Office (Word, Excel, Outlook и т.д.) (http://forum.oszone.net/forumdisplay.php?f=115)
-   -   [решено] Сделать выборку в таблице (http://forum.oszone.net/showthread.php?t=188986)

Ser6720 21-10-2010 18:43 1524213

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

Можно ли в такой таблице сделать выборку по дате.
Дата указана в столбцах H,I,J.
Пример: нужно выбрать (найти) всех с датой 05.10.09. или любой другой.

Coutty 21-10-2010 19:20 1524230

На ум приходит решение "в лоб":
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 1524254

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

okshef 21-10-2010 21:42 1524327

По-моему, проще воспользоваться фильтрами

Ser6720 21-10-2010 23:11 1524401

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

okshef 21-10-2010 23:31 1524415

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

Delirium 22-10-2010 01:39 1524471

Ну как вариант(в примере ищет только по одной дате) написать небольшой макрос, что то вроде такого:

Код:

    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 1527141

Спасибо всем, дальше буду сам.


Время: 17:13.

Время: 17:13.
© OSzone.net 2001-