Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.misc
|
|||
|
|||
![]()
Hi All,
I am trying to build a maintenance cntract tracking system. This workbook contains all my infrastructure assets, maintenance start/end dates, contact details, contract numbers, costs and other miscellaneous data. One of the results I need to produce is a list of all maintenance contracts that will expire by 30th of the next calendar month. Eg. If we are in August, I want to return anything that will expire before 30th September in the current year. I have the asset name in column A of sheet1 and sheet2. I need to extract only the rows based on the date in column U in sheet2 and merge colums A and U from sheet 1 with columns O, S, U and V from sheet2 and place the results in Sheet3. Sheet3 has headings and other content, so the placement needs to start at row 10. As the result list length could be variable, and my total length of the table in sheets 1 & 2 is 280 rows I woulkd want to ensure that rows after the end of the extract in sheet3 are blanked out. Is this possible in Excel 2003 natively? or will it require scripting? If so, could you please suggest appropriate code. Many thanks, Phillip Morgan |
#2
![]()
Posted to microsoft.public.excel.misc
|
|||
|
|||
![]()
One approach using non-array formulas which should deliver it for you ..
Illustrated in this "plug-n-play" sample construct: http://www.savefile.com/files/994757 Maintenance Contract Tracking Sys.xls Assume source data as posted in row2 down in sheets: X (your sheet1) and Y (your sheet2) [I like to use v.short sheetnames, makes formulas v.shorter] In a sheet: Z (this is your sheet3), In A10: =IF(Y!U2="","",IF(Y!U2<=DATE(YEAR(TODAY()),MONTH(T ODAY())+2,0),ROWS($1:1),"")) In B10: =IF(ROWS($1:1)COUNT($A$10:$A$300),"",INDEX(Y!A:A, SMALL($A$10:$A$300,ROWS($1:1))+1)) In C10: =IF(ROWS($1:1)COUNT($A$10:$A$300),"",INDEX(Y!O:O, SMALL($A$10:$A$300,ROWS($1:1))+1)) In D10: =IF(ROWS($1:1)COUNT($A$10:$A$300),"",INDEX(Y!S:S, SMALL($A$10:$A$300,ROWS($1:1))+1)) In E10: =IF(ROWS($1:1)COUNT($A$10:$A$300),"",INDEX(Y!U:U, SMALL($A$10:$A$300,ROWS($1:1))+1)) In F10: =IF(ROWS($1:1)COUNT($A$10:$A$300),"",INDEX(Y!V:V, SMALL($A$10:$A$300,ROWS($1:1))+1)) In G10: =IF(B10="","",INDEX(X!$U:$U,MATCH(B10,X!$A:$A,0))) Select A10:G10, copy down to G300. Cols B to G will auto-return the required results from sheets X and Y, with all lines neatly bunched at the top. -- Max Singapore http://savefile.com/projects/236895 xdemechanik --- "Phill_Morgan" wrote: Hi All, I am trying to build a maintenance cntract tracking system. This workbook contains all my infrastructure assets, maintenance start/end dates, contact details, contract numbers, costs and other miscellaneous data. One of the results I need to produce is a list of all maintenance contracts that will expire by 30th of the next calendar month. Eg. If we are in August, I want to return anything that will expire before 30th September in the current year. I have the asset name in column A of sheet1 and sheet2. I need to extract only the rows based on the date in column U in sheet2 and merge colums A and U from sheet 1 with columns O, S, U and V from sheet2 and place the results in Sheet3. Sheet3 has headings and other content, so the placement needs to start at row 10. As the result list length could be variable, and my total length of the table in sheets 1 & 2 is 280 rows I woulkd want to ensure that rows after the end of the extract in sheet3 are blanked out. Is this possible in Excel 2003 natively? or will it require scripting? If so, could you please suggest appropriate code. Many thanks, Phillip Morgan |
#3
![]()
Posted to microsoft.public.excel.misc
|
|||
|
|||
![]()
Hi Max,
Thanks for your response. Unfortunately it did not yeild the expected results. I got no asset names in sheet 3, just blank cells and numbers. Dates were retured as 01/01/1900 for some assets. Column B returned 0 for each row. All $ values were 0. The last column, which should have been a text field (contract number), just returned #N/A. The rows were not bunched. Also, I should have mentioned, ALL sheets have the headings on row 9. Data always starts at row 10 in every sheet (as such I changed U2 in formula in A10 to U10). Phill "Max" wrote: One approach using non-array formulas which should deliver it for you .. Illustrated in this "plug-n-play" sample construct: http://www.savefile.com/files/994757 Maintenance Contract Tracking Sys.xls Assume source data as posted in row2 down in sheets: X (your sheet1) and Y (your sheet2) [I like to use v.short sheetnames, makes formulas v.shorter] In a sheet: Z (this is your sheet3), In A10: =IF(Y!U2="","",IF(Y!U2<=DATE(YEAR(TODAY()),MONTH(T ODAY())+2,0),ROWS($1:1),"")) In B10: =IF(ROWS($1:1)COUNT($A$10:$A$300),"",INDEX(Y!A:A, SMALL($A$10:$A$300,ROWS($1:1))+1)) In C10: =IF(ROWS($1:1)COUNT($A$10:$A$300),"",INDEX(Y!O:O, SMALL($A$10:$A$300,ROWS($1:1))+1)) In D10: =IF(ROWS($1:1)COUNT($A$10:$A$300),"",INDEX(Y!S:S, SMALL($A$10:$A$300,ROWS($1:1))+1)) In E10: =IF(ROWS($1:1)COUNT($A$10:$A$300),"",INDEX(Y!U:U, SMALL($A$10:$A$300,ROWS($1:1))+1)) In F10: =IF(ROWS($1:1)COUNT($A$10:$A$300),"",INDEX(Y!V:V, SMALL($A$10:$A$300,ROWS($1:1))+1)) In G10: =IF(B10="","",INDEX(X!$U:$U,MATCH(B10,X!$A:$A,0))) Select A10:G10, copy down to G300. Cols B to G will auto-return the required results from sheets X and Y, with all lines neatly bunched at the top. -- Max Singapore http://savefile.com/projects/236895 xdemechanik --- "Phill_Morgan" wrote: Hi All, I am trying to build a maintenance cntract tracking system. This workbook contains all my infrastructure assets, maintenance start/end dates, contact details, contract numbers, costs and other miscellaneous data. One of the results I need to produce is a list of all maintenance contracts that will expire by 30th of the next calendar month. Eg. If we are in August, I want to return anything that will expire before 30th September in the current year. I have the asset name in column A of sheet1 and sheet2. I need to extract only the rows based on the date in column U in sheet2 and merge colums A and U from sheet 1 with columns O, S, U and V from sheet2 and place the results in Sheet3. Sheet3 has headings and other content, so the placement needs to start at row 10. As the result list length could be variable, and my total length of the table in sheets 1 & 2 is 280 rows I woulkd want to ensure that rows after the end of the extract in sheet3 are blanked out. Is this possible in Excel 2003 natively? or will it require scripting? If so, could you please suggest appropriate code. Many thanks, Phillip Morgan |
#4
![]()
Posted to microsoft.public.excel.misc
|
|||
|
|||
![]()
jeez, how do I edit my own posts...
I adjusted the +1 in the rows to start at row 10 and the dates and dollars show up fine, the only things not working is showing the asset name, and the contract number is not finding a match, and so returning #N/A. Also, does it matter than column U in sheet 2 is a calculated value? The maintenance start date + number of years of contract generates the end date of the contract. phill "Phill_Morgan" wrote: Hi Max, Thanks for your response. Unfortunately it did not yeild the expected results. I got no asset names in sheet 3, just blank cells and numbers. Dates were retured as 01/01/1900 for some assets. Column B returned 0 for each row. All $ values were 0. The last column, which should have been a text field (contract number), just returned #N/A. The rows were not bunched. Also, I should have mentioned, ALL sheets have the headings on row 9. Data always starts at row 10 in every sheet (as such I changed U2 in formula in A10 to U10). Phill "Max" wrote: One approach using non-array formulas which should deliver it for you .. Illustrated in this "plug-n-play" sample construct: http://www.savefile.com/files/994757 Maintenance Contract Tracking Sys.xls Assume source data as posted in row2 down in sheets: X (your sheet1) and Y (your sheet2) [I like to use v.short sheetnames, makes formulas v.shorter] In a sheet: Z (this is your sheet3), In A10: =IF(Y!U2="","",IF(Y!U2<=DATE(YEAR(TODAY()),MONTH(T ODAY())+2,0),ROWS($1:1),"")) In B10: =IF(ROWS($1:1)COUNT($A$10:$A$300),"",INDEX(Y!A:A, SMALL($A$10:$A$300,ROWS($1:1))+1)) In C10: =IF(ROWS($1:1)COUNT($A$10:$A$300),"",INDEX(Y!O:O, SMALL($A$10:$A$300,ROWS($1:1))+1)) In D10: =IF(ROWS($1:1)COUNT($A$10:$A$300),"",INDEX(Y!S:S, SMALL($A$10:$A$300,ROWS($1:1))+1)) In E10: =IF(ROWS($1:1)COUNT($A$10:$A$300),"",INDEX(Y!U:U, SMALL($A$10:$A$300,ROWS($1:1))+1)) In F10: =IF(ROWS($1:1)COUNT($A$10:$A$300),"",INDEX(Y!V:V, SMALL($A$10:$A$300,ROWS($1:1))+1)) In G10: =IF(B10="","",INDEX(X!$U:$U,MATCH(B10,X!$A:$A,0))) Select A10:G10, copy down to G300. Cols B to G will auto-return the required results from sheets X and Y, with all lines neatly bunched at the top. -- Max Singapore http://savefile.com/projects/236895 xdemechanik --- "Phill_Morgan" wrote: Hi All, I am trying to build a maintenance cntract tracking system. This workbook contains all my infrastructure assets, maintenance start/end dates, contact details, contract numbers, costs and other miscellaneous data. One of the results I need to produce is a list of all maintenance contracts that will expire by 30th of the next calendar month. Eg. If we are in August, I want to return anything that will expire before 30th September in the current year. I have the asset name in column A of sheet1 and sheet2. I need to extract only the rows based on the date in column U in sheet2 and merge colums A and U from sheet 1 with columns O, S, U and V from sheet2 and place the results in Sheet3. Sheet3 has headings and other content, so the placement needs to start at row 10. As the result list length could be variable, and my total length of the table in sheets 1 & 2 is 280 rows I woulkd want to ensure that rows after the end of the extract in sheet3 are blanked out. Is this possible in Excel 2003 natively? or will it require scripting? If so, could you please suggest appropriate code. Many thanks, Phillip Morgan |
#5
![]()
Posted to microsoft.public.excel.misc
|
|||
|
|||
![]()
"Phill_Morgan" wrote:
jeez, how do I edit my own posts... You can't <g. But you can always post a reply to your own post, like you did here. I adjusted the +1 in the rows to start at row 10 and the dates and dollars show up fine, the only things not working is showing the asset name, and the contract number is not finding a match, and so returning #N/A. Here's the revised working construct to suit your actuals: http://cjoint.com/?iygs4bCaH0 Maintenance Contract Tracking Sys_v1.xls The adjustment to the formulas in B10:F10 is just change the "+1" to "+9" Also, does it matter than column U in sheet 2 is a calculated value? The maintenance start date + number of years of contract generates the end date of the contract. Provided the dates calculated are real dates (like the dummy real dates in my sample), it shouldn't matter. If you experience problems, post your formula calculating the dates. -- Max Singapore http://savefile.com/projects/236895 xdemechanik --- |
#6
![]()
Posted to microsoft.public.excel.misc
|
|||
|
|||
![]()
Sorry for the delay in responding. Weekend :-)
It doesn't work. This is the results I get. 0 1/01/2001 13/08/200711/08/2008 55641.36 #N/A 0 1/12/2006 1/12/2008 30/11/2010 144000.00 #N/A 0 0/01/1900 0/01/1900 0.00 #N/A Column A is blank. B is not showing the Asset name, and Contract # is #N/A. The date being calcualted for End date in sheet 2 (column U), is =IF(S10<"",S10+((T10-1)*365)+364,"") T10 is ther term of the contract in years. For leap years, this ends up being a day out, but I can live with that. This date is then formatted as DD/MM/YYYY (AU format) Phill "Max" wrote: "Phill_Morgan" wrote: jeez, how do I edit my own posts... You can't <g. But you can always post a reply to your own post, like you did here. I adjusted the +1 in the rows to start at row 10 and the dates and dollars show up fine, the only things not working is showing the asset name, and the contract number is not finding a match, and so returning #N/A. Here's the revised working construct to suit your actuals: http://cjoint.com/?iygs4bCaH0 Maintenance Contract Tracking Sys_v1.xls The adjustment to the formulas in B10:F10 is just change the "+1" to "+9" Also, does it matter than column U in sheet 2 is a calculated value? The maintenance start date + number of years of contract generates the end date of the contract. Provided the dates calculated are real dates (like the dummy real dates in my sample), it shouldn't matter. If you experience problems, post your formula calculating the dates. -- Max Singapore http://savefile.com/projects/236895 xdemechanik --- |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
need help please inserting multiple rows based on cell value then copying to data sheet | Excel Worksheet Functions | |||
Formula Help - Copy data from one sheet to another based on criter | Excel Worksheet Functions | |||
Copying data from one worksheet to another based on criteria | Excel Discussion (Misc queries) | |||
Copying whole rows based upon one criteria | Excel Discussion (Misc queries) | |||
Excel: How to return count for each cell within date range criter. | Excel Worksheet Functions |