Você pode usar a função MATCH(lookup_value, lookup_array, match_type)
para encontrar a primeira ocorrência de um valor em uma coluna. Então você pode usar esse valor para fazer o intervalo da função soma. Algo como:
=SUM(INDIRECT(CONCATENATE("B1:B";MATCH("asd";B:B;0)-1)))
Explicação:
MATCH("asd";B:B;0) - 1 // finds the first occurrence of "asd" on B column, gets the cell above it
CONCATENATE("B1:B";$) // get the interval b1 to bn, where n is the cell found
INDIRECT($) // makes reference to the cell specified by the string "b1:bn"
SUM($) // sums the interval
Testado no Google Spreasheets, mas deve funcionar no Excel de acordo com os documentos.