Per Ana Andres, “[t]he cited half-life is the number of years, counting back from the current year, that account for 50 per cent of the total citations received by the journal in the current year.”
I am trying to calculate this using a formula in Excel. Assume I have data as follows:
2008 2009 2010 2011 Total
0 4 1 3 8
The article was published in 2008, the current year is 2011. In this case the cited half-life is 2, since you have to go back to 2010 to get (1+3) 4 (i.e. 50% of 8) citations.
How can I write a formula in Excel that calculates the half-life in this manner using data structured as above (i.e. each column is one year)?
Paste your values as you have in range A1:E2 and then use the array formula below. You apply array formula by pasting it into a cell and pressing left ctrl + left shift + enter then when yiu select the cell with formula the formula will be shown as if it was in curly brackets i.e. {=max…}.
=MAX(IF(MMULT(((A1:D1)>=TRANSPOSE(A1:D1))*A2:D2,ROW(INDIRECT("a1:a"&D1-A1+1))*0+1)>SUM(A2:D2)/2,TRANSPOSE(A1:D1)))
Briefly
1) creates vector of 1s of a length equal to the number of years
ROW(INDIRECT("a1:a"&D1-A1+1))*0+1
2) provides the vector of years to pic from
TRANSPOSE(A1:D1)
3) provides matrix to calculate cumulative sum
(A1:D1)>=TRANSPOSE(A1:D1))*A2:D2
EDIT: I have modified the formula a bit as before it had problems in cases when the half of score was not achievable in any of the years and solved a bit different problem (it was latd whe I published my answer). I also added description how to use an array formula. Please let me know have it worked.
EDIT2: there was unneccessary space afer SUM which caused #VALUE, it was automatically enetered by spellchecker on my tablet.
Answer:
You can get it with an auxilary row and the countif() function like this
A B C D E
1 2008 =A1+1 =B1+1 =C1+1 Total
2 0 4 1 3 =SUM(A2:D2)
3 =B3+A2 =C3+B2 =D3+C2 =D2-E2/2 =COUNTIF(A3:D3;"<=0")
I don’t know a solution without such an xtra row.
Tags: algorithm, excelexcel