Descobrir quantos valores únicos existem num intervalo que contém valores duplicados

Boa tarde.

A minha dúvida é a seguinte: tenho uma coluna com vários temas (ex: direitos humanos, bullying, ambiente, bullying) e quero saber o total de temas. Neste caso são 3 porque o tema bullying está repetido. Há uma função para fazer este cálculo?

Encontrei este artigo para excel (microsoft) mas não sei adaptar ao open office:

Obrigada!

Ola @dmachado.solange, seja bem vinda ao Grupo.

Considerando que esta usando as células de A1 a A4

Use a formula =SOMA(1/CONT.SE($A$1:$A$4;A1:A4))

e não de enter, use Ctrl+Shift+Enter, a fórmula é matricial

E Caso queira a lista destes únicos use a Macro abaixo:

'====================================================================
sub ExtrairUnicosInputBox ' vai pedir "Planilha1.A1:A8" "Planilha2.A7"
'====================================================================
'fonte:  http://www.clubedohardware.com.br/profile/697345-tiank/
rem ----------------------------------------------------------------------
Dim mCamposFiltro(0) As New com.sun.star.sheet.TableFilterField
Dim x as String
Dim y as String
Dim xi() as Variant
Dim yi() as Variant
   x = inputbox("Área de extração: (Ex: Planilha1.D2:C24)")
   y = inputbox("Célula inicial para descarga: (Ex: Planilha2.C7)") 
      msgbox "Area de extração: "& X &" , Célula inicial para descarga: "& y
   xi = Split( x,"." ) 
   yi = Split( y,"." )
   oPlan = ThisComponent.Sheets.getByName( xi(0) )
   oIntervalo = oPlan.getCellRangeByName( xi(1) )
   '=> esta parte permanece idêntica <=
   'Descritor do filtro
   oDescFiltro = oIntervalo.createFilterDescriptor( True )
    'Definir os campos
   mCamposFiltro(0).Field = 0
   mCamposFiltro(0).Operator = 1
   'Estabelecer o destino
   oPlan = ThisComponent.Sheets.getByName( yi(0) )
   oDestino = oPlan.getCellRangeByName( yi(1) ).getCellAddress()
   '=> Restante permanece igual <=
   'Propriedades do filtro padrão
   oDescFiltro.ContainsHeader = False
   oDescFiltro.SkipDuplicates = True
   oDescFiltro.CopyOutputData = True
   oDescFiltro.OutputPosition = oDestino
   oDescFiltro.FilterFields = mCamposFiltro
   oIntervalo.Filter( oDescFiltro )
end Sub

ATENÇÂO:: Para dar mais detalhes a sua pergunta, use Descrição da imagem na pergunta ou Descrição da imagem abaixo. Não use Adicionar resposta para comentário. Grato.

Caso a resposta atendeu sua necessidade, por gentileza, click na bolinha Descrição da imagem a esquerda da resposta, para finalizar a pergunta.