Anda di halaman 1dari 3

Array Formula is powerful and complicate function in Excel. In normal Excel formula, it calculates in one dimension i.e.

=Sum(A1:A10) whereas A1:A10 is an argument for a range of data and return single result to you. Array Formula can accept multi range as argument and return multiple results to you. Attach an extract from a book for introduction of Array Formula, it gives you concept of what is array formula. Nevertheless, bear in mind that user must press CTRL+SHIFT+ENTER to enter a array formula, otherwise Excel will return #VALUE or error result. Regarding the question:

Start Date
First of all, the formula is not =MIN(IF(($E16:$GF16)="X",$E$11:$GF$11,99999)) It is embrace by { } as an Array Formula, above only a normal formula.

= { M I N ( I F ( ( $ E 1 6 : $ G F 1 6 ) = " X " , $ E $ 11 : $ G F $ 11 , 9 9 9 9 9 ) ) }

Then step by step explanation. In row 11, it keeps the extract date of the column, that in cell E11, it captures the input of Time Sheet Start Date on in cell C5, then add one day in cell F11 and so no up to cell GF11. It provides above half year duration for update. Thus $E$11:$GF$11 provides all date number in this schedule. In Excel, all date are counted from 1-Jan-1900, therefore if the format of a data in comma, 1-Jan-2012 will show 40909, 2Jan-2012 with 40910 and so on. In an Array Formula, it returns {40909,40910,40911,40912,40913,40914,40915,40916,} $E16:$GF16 captures all entry of X in respective column, bear in mind the range must same as above $E$11:$GF$11 i.e. column E to column GF. A =If(logic_test, value_if_true, value_if_false) will depend on the result of logic_test (results in true or false) to execute the formula in value_if_true or value_if_false.

/var/www/apps/conversion/current/tmp/scratch11267/95918549.doc

Page 1 of 3

The logic_test ($E16:$GF16)="X" to test each cell in the row 16 whether it (return True) or contains other thing (whatever not equal X, 2012 may have other character or blank, then return False). For Jan 1 2 3 4 example in the range from 1-Jan-12 to 8-Jan-12, it returns S M T W X {FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE}

contains X

5 6 7 8 T F S S x w

In whole =If(logic_test, value_if_true, value_if_false) formula means whenever row 16 contains a X, execute value_if_true that return the respective date number in row 11, otherwise execute value_if_false that insert a number 99999. It results the range from 1-Jan-12 to 8-Jan12 as ={99999,99999,99999,40912,40913,99999,99999,99999}. A =Min(number1, number2, ) function returns the minimal number in the argument, it can be inputted with an array. Therefore =Min({99999,99999,99999,40912,40913,99999,99999,99999}) returns 40912 in cell A15 i.e. 4-Jan-12, the minimal number in the array and which is the earliest date with X.

Finish Date
Similar as above formula, ={(MAX(($E$11:$GF$11)*(($E16:$GF16)="X")))} use Array Formula to find out the latest date that contains a X. $E$11:$GF$11, ($E16:$GF16)=X with same meaning as above. In Excel a logic text TRUE will be treated as 1 for calculation, FALSE as 0 for calculation. For example by multiple two logic texts, the result to be =TRUE*TRUE returns 1; =TRUE*FALSE returns 0; =FALSE*FALSE returns 0; In ($E$11:$GF$11)*(($E16:$GF16)="X")) which equal to
{40909,40910,40911,40912,40913,40914,40915,40916,}*{FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE}

={0,0,0,40912,40913,0,0,0} while whatever times with FALSE returns 0 and 40912*1 = 40912. A =Max(number1, number2, ) function returns the maximum number in the argument, it can be inputted with an array. Therefore =Max({0,0,0,40912,40913,0,0,0}) returns 40913 in cell B15 i.e. 5-Jan-12, the
/var/www/apps/conversion/current/tmp/scratch11267/95918549.doc Page 2 of 3

maximum number in the array and which is the latest date with X (being ignore the last W because of it cannot be passed the logic test in ($E16:$GF16)="X".

Sat, Sun, Holiday


In the sheet byLetter, it uses Conditional Format to determine whether below one of Conditions with precedence order are TRUE: 1. the cell with a non X entry; 2. the date of the column fall as a defined holiday in HolidayList or Sunday; 3. check the months number, it hatches all odd number month to distinguish each month a the chart. I believe the condition 2 and 3 is necessary for a calendar, but if all Saturday is not a working day, the Conditional Format can be change as the sheet NoNonX. In the sheet NoNonX, the Conditional Format is subject to: 1. the date of the column fall as a defined holiday in HolidayList or Saturday or Sunday; 2. check the months number, it hatches all odd number month to distinguish each month in a chart. Owing to Conditional Format allows three conditions, therefore you can change the Conditional Format as sheet byDate that holiday colour in green.

Input Start / Finish Date


As abovementioned, the Array Formula will check every cell with a text X, thereafter abstract the date while it have X as a array for calculation. Both formulas only consider the first/last occurrence of X and it associated earlier/later date. As a result, it will not count how many X for a row. I add a column for Working Day which =countif(range, criteria) to count the number of X in a row.

/var/www/apps/conversion/current/tmp/scratch11267/95918549.doc

Page 3 of 3

Anda mungkin juga menyukai