Se você estiver aberto para funções definidas pelo usuário, tente minha abordagem:
suponha que seus valores estejam no intervalo de B2:B4
e você precise calcular a soma total da moeda de B2
, em vez de usar a fórmula de matriz:
=SUMPRODUCT(IF(GetFormat(B2:B4)=GetFormat(B2),1,0),B2:B4)
Note que é uma fórmula de array, então você precisa pressionar CTRL + SHIFT + ENTER
Mas antes você deve adicionar a função definida pelo usuário à sua pasta de trabalho para obter uma matriz de formatos numéricos de intervalo:
Function GetFormat(r As Range)
Dim arr() As String
ReDim arr(1 To r.Cells.Count)
i = 1
For Each c In r
arr(i) = c.NumberFormat
i = i + 1
Next c
GetFormat = WorksheetFunction.Transpose(arr)
End Function