+ Reply to Thread
Results 1 to 16 of 16

Help with returning records given a date range

Hybrid View

  1. #1
    Daveo
    Guest

    Help with returning records given a date range

    Hi there,

    I was wondering if anyone could give me some pointers as to where to
    start with the following?

    I have a spreadsheet of data in a table. One of the fields is date. I
    would like the user to be able to enter a date range and have all the
    records returned that fall within that range.

    What function should I use for that? DGET can only return one record.
    Could I use something like VLOOKUP in an array? The number of records
    returned will obviously change depending on the date range entered.

    Or, should I use something like a VBA loop?

    I need to do this in Excel - it can't be in Access.

    Any help would be much appreciated.

    Many thanks - David


  2. #2
    Barb Reinhardt
    Guest

    Re: Help with returning records given a date range

    Is AutoFilter out of the question?

    "Daveo" <writetodaveo@gmail.com> wrote in message
    news:1127265204.992330.189990@o13g2000cwo.googlegroups.com...
    > Hi there,
    >
    > I was wondering if anyone could give me some pointers as to where to
    > start with the following?
    >
    > I have a spreadsheet of data in a table. One of the fields is date. I
    > would like the user to be able to enter a date range and have all the
    > records returned that fall within that range.
    >
    > What function should I use for that? DGET can only return one record.
    > Could I use something like VLOOKUP in an array? The number of records
    > returned will obviously change depending on the date range entered.
    >
    > Or, should I use something like a VBA loop?
    >
    > I need to do this in Excel - it can't be in Access.
    >
    > Any help would be much appreciated.
    >
    > Many thanks - David
    >




  3. #3
    Daveo
    Guest

    Re: Help with returning records given a date range

    Hi Barb,

    I'm afraid so.

    Thanks - David


  4. #4
    Biff
    Guest

    Re: Help with returning records given a date range

    Hi!

    If you can't filter:

    >I would like the user to be able to enter a date range and have all the
    >records returned that fall within that range.


    How many "records" are you talking about?

    Be very specific. Explain it like this:

    "I" have a data table in Sheet1 from A2:H500.

    Column A are dates.

    B2:H500 contains various data.

    The user will enter a date range. A1 will hold the lower boundry and B1 will
    hold the upper boundry.

    "I" want to extract to Sheet2 all the data in columns B:H that fall within
    the date range of cells A1 and B1 inclusive.

    Biff

    "Daveo" <writetodaveo@gmail.com> wrote in message
    news:1127265204.992330.189990@o13g2000cwo.googlegroups.com...
    > Hi there,
    >
    > I was wondering if anyone could give me some pointers as to where to
    > start with the following?
    >
    > I have a spreadsheet of data in a table. One of the fields is date. I
    > would like the user to be able to enter a date range and have all the
    > records returned that fall within that range.
    >
    > What function should I use for that? DGET can only return one record.
    > Could I use something like VLOOKUP in an array? The number of records
    > returned will obviously change depending on the date range entered.
    >
    > Or, should I use something like a VBA loop?
    >
    > I need to do this in Excel - it can't be in Access.
    >
    > Any help would be much appreciated.
    >
    > Many thanks - David
    >




  5. #5
    Daveo
    Guest

    Re: Help with returning records given a date range

    Hi Biff,

    The number of records increases at around 50 per day, but I'll clear
    out ones older than 3 months old so let's say there wont be more than
    5000 records. I'll probably only be looking to return about 1500 at the
    very most at a time.

    The data table is in Sheet1 from A2:AQ500 to start with but the 500
    part will obvioulsy change as time goes on.

    Lets say the lower and upper bounds are in cells A1 and B1
    respectively.

    I'd want to extract to Sheet2 all the data in columns A:AQ that fall
    within the date range of cells A1 and B1.

    What's the best way?

    Many thanks - David


  6. #6
    Biff
    Guest

    Re: Help with returning records given a date range

    Hi!

    Ok, that might be too much to do with formulas. It could be done but the
    calculation time would be very slow.

    If you can't filter then your only remaining option is VBA code. I can't
    help you with that but you should try posting this in the Programming forum.

    If you don't get a solution there then post back here and let me know. I'll
    put together a sample file that does this with formulas.

    Biff

    "Daveo" <writetodaveo@gmail.com> wrote in message
    news:1127273931.540930.127830@g14g2000cwa.googlegroups.com...
    > Hi Biff,
    >
    > The number of records increases at around 50 per day, but I'll clear
    > out ones older than 3 months old so let's say there wont be more than
    > 5000 records. I'll probably only be looking to return about 1500 at the
    > very most at a time.
    >
    > The data table is in Sheet1 from A2:AQ500 to start with but the 500
    > part will obvioulsy change as time goes on.
    >
    > Lets say the lower and upper bounds are in cells A1 and B1
    > respectively.
    >
    > I'd want to extract to Sheet2 all the data in columns A:AQ that fall
    > within the date range of cells A1 and B1.
    >
    > What's the best way?
    >
    > Many thanks - David
    >




  7. #7
    Daveo
    Guest

    Re: Help with returning records given a date range

    Cheers Biff.

    I've posted something there.

    Thanks for all your help - David


  8. #8
    Max
    Guest

    Re: Help with returning records given a date range

    "Daveo" wrote:
    > .. The data table is in Sheet1 from A2:AQ500 to start with
    > but the 500 part will obviously change as time goes on.
    > Lets say the lower and upper bounds are in cells A1 and B1
    > respectively.
    > I'd want to extract to Sheet2 all the data in columns A:AQ that fall
    > within the date range of cells A1 and B1.


    Here's a non-array formulas play ..

    In Sheet1
    -------
    Assume the dates in the source table are in col A, from A2 down

    Use an empty column to the right of the table, say col AS
    Put in AS2:
    =IF(A2="","",IF(AND(A2>=Sheet2!$A$1,A2<=Sheet2!$B$1),ROW(),""))
    Copy AS2 down till the last row of source data, i.e. to AS500
    (Leave AS1 empty)

    In Sheet2
    ----
    Assume A1:B1 will house the inputs: Start date, End date
    (Let's put the lower and upper bounds here in Sheet2 itself)

    Put in A2:
    =IF(ISERROR(SMALL(Sheet1!$AS:$AS,ROWS($A$1:A1))),
    "",INDEX(Sheet1!A:A,MATCH(SMALL(Sheet1!$AS:$AS,
    ROWS($A$1:A1)),Sheet1!$AS:$AS,0)))

    Copy A2 across to AQ2, fill down to AQ500
    Format col A as date

    Sheet2 will return the desired results, i.e. only those lines from Sheet1
    with dates in col A falling between the start* and end* dates (inclusive),
    all neatly bunched at the top.
    *as input in A1:B1

    For a cleaner look, suppress extraneous zeros from showing in Sheet2 via:
    Click Tools > Options > View tab > Uncheck "Zeros display" > OK)

    Adapt to suit ..

    Also, consider setting the calculation mode to manual
    (via: Tools > Options > Calculation tab)
    Then just press F9 to calc after the inputs are made in A1:B1
    --
    Rgds
    Max
    xl 97
    ---
    Singapore, GMT+8
    xdemechanik
    http://savefile.com/projects/236895
    --



  9. #9
    Bruno Campanini
    Guest

    Re: Help with returning records given a date range

    "Daveo" <writetodaveo@gmail.com> wrote in message
    news:1127273931.540930.127830@g14g2000cwa.googlegroups.com...
    > Hi Biff,
    >
    > The number of records increases at around 50 per day, but I'll clear
    > out ones older than 3 months old so let's say there wont be more than
    > 5000 records. I'll probably only be looking to return about 1500 at the
    > very most at a time.
    >
    > The data table is in Sheet1 from A2:AQ500 to start with but the 500
    > part will obvioulsy change as time goes on.
    >
    > Lets say the lower and upper bounds are in cells A1 and B1
    > respectively.
    >
    > I'd want to extract to Sheet2 all the data in columns A:AQ that fall
    > within the date range of cells A1 and B1.
    >
    > What's the best way?
    >
    > Many thanks - David


    I suppose you don't have Blanks on your Date column.
    If it is not the case, please let me know.

    Define StartCell, TargetCell, ColNum, LowerDate, UpperDate

    -----------------------------------------------------
    Sub Button36_Click()
    Dim StartCell As Range, TargetCell As Range
    Dim ColNum As Byte, LowerDate As Range, UpperDate As Range
    Dim i, j As Long, k As Long

    'User Definitions
    '------------------------------
    Set StartCell = Sheets("Sheet2").[A230]
    Set TargetCell = Sheets("Sheet10").[A1]
    ColNum = 4
    Set LowerDate = [A228]
    Set UpperDate = [A229]
    '------------------------------

    On Error GoTo ErrHandler
    Application.Calculation = xlCalculationManual
    Application.ScreenUpdating = False

    For Each i In Range(StartCell, StartCell.End(xlDown))
    If i >= LowerDate And i <= UpperDate Then
    For k = 0 To ColNum - 1
    TargetCell.Offset(j, k) = i.Offset(0, k)
    Next
    j = j + 1
    End If
    Next

    ErrHandler:
    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = True

    End Sub
    ------------------------------------

    Bruno



  10. #10
    Daveo
    Guest

    Re: Help with returning records given a date range

    Hi Bruno,

    I put this code in my sheet and changed a couple of things. My start
    cell is Sheet1, Cell A3. I want the data to be copied into Sheet2,
    starting at Cell A5. My dates are in Sheet1, Cells A1 and B1. I have 44
    columns that I need to copy. When I run the code, nothing happens at
    all:


    Private Sub CommandButton1_Click()
    Dim StartCell As Range, TargetCell As Range
    Dim ColNum As Byte, LowerDate As Range, UpperDate As Range
    Dim i, j As Long, k As Long


    'User Definitions
    '------------------------------
    Set StartCell = Sheets("Sheet1").[A3]
    Set TargetCell = Sheets("Sheet2").[A5]
    ColNum = 44
    Set LowerDate = Sheets("Sheet1").[A1]
    Set UpperDate = Sheets("Sheet1").[B1]
    '------------------------------


    On Error GoTo ErrHandler
    Application.Calculation = xlCalculationManual
    Application.ScreenUpdating = False


    For Each i In Range(StartCell, StartCell.End(xlDown))
    If i >= LowerDate And i <= UpperDate Then
    For k = 0 To ColNum - 1
    TargetCell.Offset(j, k) = i.Offset(0, k)
    Next
    j = j + 1
    End If
    Next


    ErrHandler:
    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = True
    End Sub


    Thanks - David


  11. #11
    Bruno Campanini
    Guest

    Re: Help with returning records given a date range

    "Daveo" <writetodaveo@gmail.com> wrote in message
    news:1127347425.506307.321300@z14g2000cwz.googlegroups.com...

    > Hi Bruno,
    >
    > I put this code in my sheet and changed a couple of things. My start
    > cell is Sheet1, Cell A3. I want the data to be copied into Sheet2,
    > starting at Cell A5. My dates are in Sheet1, Cells A1 and B1. I have 44
    > columns that I need to copy. When I run the code, nothing happens at
    > all:

    [...]

    Ok Daveo.
    First of all, are you sure your range starting with Sheet1!A3,
    cell Sheet1!A1, cell Sheet1!B1 have all the same data type?
    Things may be different from what they appear to be.
    Then try REMing out the following 3 lines:

    On Error GoTo ErrHandler
    Application.Calculation = xlCalculationManual
    Application.ScreenUpdating = False

    and tell me please what line of code Debugger points
    to for error.

    Bruno



+ Reply to Thread

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts

Search Engine Friendly URLs by vBSEO 3.6.0 RC 1