conecta strings com condição no excel

0

Digamos que eu tenha um índice de pontos assim:

sheet1

1
2
3
4
5
6
...

E os dados de conexão representam a relação entre esses pontos, assim como as duas primeiras linhas significam que point_1 estão conectados com point_75 e point_78 :

sheet2

1   75
1   78
2   44
3   45
3   65
4   39
4   63
5   49
5   50
6   59
...

E eu gostaria de poder usar alguma expressão para representar isso em sheet1 como:

1   75,78
2   44
3   45,65
...

Existe alguma maneira de fazer isso?

    
por Amarth Gûl 10.08.2017 / 16:36

1 resposta

1

Primeiro, insira a seguinte função definida pelo usuário em um módulo padrão:

Public Function Konnect(r1 As Range, r2 As Range) As String
    Dim ary, i As Long
    Dim v As Variant

    ary = r2
    v = r1.Value
    Konnect = ""

    For i = LBound(ary, 1) To UBound(ary, 1)
        If ary(i, 1) = v Then Konnect = Konnect & "," & ary(i, 2)
    Next i

    If Len(Konnect) <> 0 Then Konnect = Mid(Konnect, 2)
End Function

Então, em Folha1 célula B1 digite:

=Konnect(A1,Sheet2!A$1:B$10)

e copie:

Naturalmente,vocêalterariao10paracorresponderaotamanhorealdatabelaemFolha2.

EDIT#1:

FunçõesDefinidaspeloUsuário(UDFs)sãomuitofáceisdeinstalareusar:

  1. ALT-F11exibeajaneladoVBE
  2. ALT-IALT-Mabreumnovomódulo
  3. coleomaterialefecheajaneladoVBE

Sevocêsalvarapastadetrabalho,aUDFserásalvacomela.SevocêestiverusandoumaversãodoExcelposteriora2003,deverásalvaroarquivocomo.xlsmemvezde.xlsx

PararemoveroUDF:

  1. abrirajaneladoVBEcomoacima
  2. limpeocódigo
  3. fecheajaneladoVBE

ParausaroUDFdoExcel:

=Konnect(A1,Sheet2!A$1:B$10)

Parasabermaissobremacrosemgeral,consulte:

link

e

link

e para detalhes sobre UDFs, consulte:

link

As macros devem estar ativadas para que isso funcione!

    
por 10.08.2017 / 17:47