Como posso contar seleções exclusivas de várias seleções em uma lista suspensa (Excel)

0

Gostaria de contar o número de seleções exclusivas de uma coluna que contém várias seleções em uma lista suspensa.

Por exemplo, a coluna B3 contém

Monday, Tuesday, Wednesday

A função count retorna um valor de 1 em vez de 3 - existe alguma maneira de contar os três dias distintamente? Obrigada!

Várias seleções de uma lista suspensa foram possíveis usando o código VBA de: link

    
por pundadesh 18.06.2018 / 17:18

1 resposta

1

A solução mais simples seria usar uma UDF. (Eu nem tenho certeza se é possível com uma fórmula padrão.)

Com uma planilha configurada assim:

Copieecoleocódigoaseguiremummódulopadrão:

'============================================================================================'Module:<anystandardmodule>'Version:0.1.1'Part:1of1'References:(Optional)MicrosoftScriptingRuntime[Scripting]'Source:https://superuser.com/a/1332369/763880'============================================================================================OptionExplicitPublicFunctionCountDistintMultiSelections_(_count_arrayAsRange_)_AsLongDimdictSelectionsAsObject'##EarlyBound##AsScripting.DictionarySetdictSelections=CreateObject("Scripting.Dictionary") '##Early Bound## = New Dictionary

  Dim celCell As Range
  For Each celCell In Intersect(count_array, count_array.Parent.UsedRange)
    Dim varSelections As Variant
    varSelections = Split(celCell.Value2, ", ")
    Dim varSelection As Variant
    For Each varSelection In varSelections
      If dictSelections.Exists(varSelection) Then
        dictSelections(varSelection) = dictSelections(varSelection) + 1
      Else
        dictSelections.Add varSelection, 1
      End If
    Next varSelection
  Next celCell
  CountDistintMultiSelections = dictSelections.Count

End Function


Digite a seguinte fórmula em C2 :

=CountDistintMultiSelections(B:B)

Explicação:

O código usa a função Split() para separar as seleções individuais em cada célula e um dicionário para contar as seleções exclusivas.

Notas:

Para instalar o UDF, siga estas etapas:

  • Pressione Alt + F11
  • Selecione o item de menu InsertModule
  • Cole o código na janela principal
por 18.06.2018 / 21:54