Como mostro números únicos ausentes no celular? [fechadas]

1

Eu tenho um número de 5 dígitos, por exemplo, 23450 em uma célula. Quero exibir os dígitos de 0 a 9 que estão faltando nesse número. Neste exemplo, minha outra célula deve exibir 16789 , que são os dígitos ausentes. Abaixo está um exemplo:

Column A        Column B (should display missing number)
23456          17890
34877          125690
22344          1567890
27788          1345690

Observe que o número na coluna A pode conter múltiplos do mesmo dígito. Nesse caso, a coluna B conteria mais de cinco dígitos ausentes.

Eu não tenho ideia de como abordar esse problema.

    
por abhi 27.04.2016 / 15:14

3 respostas

1

Minha solução não-VBA é semelhante à de Máté Juhász, mas sem substituição; simplesmente constrói a string:

=IF(ISERROR(FIND("0",A1)),"0","")&IF(ISERROR(FIND("1",A1)),"1","")
 &IF(ISERROR(FIND("2",A1)),"2","")&IF(ISERROR(FIND("3",A1)),"3","")
 &IF(ISERROR(FIND("4",A1)),"4","")&IF(ISERROR(FIND("5",A1)),"5","")
 &IF(ISERROR(FIND("6",A1)),"6","")&IF(ISERROR(FIND("7",A1)),"7","")
 &IF(ISERROR(FIND("8",A1)),"8","")&IF(ISERROR(FIND("9",A1)),"9","")
    
por 28.04.2016 / 19:37
0

Pode ser facilmente alcançado com o VBA:

Public Function uniquenumbers(cellvalue As String)
    originalseries = "1234567890"
    totallength = Len(cellvalue)
    For i = 1 To totallength
        thevalue = Mid(cellvalue, i, 1)
        theposition = InStr(1, originalseries, thevalue)
        If theposition > 0 Then
            originalseries = Mid(originalseries, 1, theposition - 1) & Mid(originalseries, theposition + 1)
        End If
    Next i
    uniquenumbers = originalseries
End Function

Abra macros / VBA com ALT + F11 . Clique com o botão direito do mouse em ThisWorkbook e insira um Módulo . Cole o código no lado direito.

Na célula B2 put =uniquenumbers(A2) .

    
por 27.04.2016 / 16:53
0

A minha abordagem é começar com uma cadeia de todos os dígitos ( 0123456789 ) e, em seguida, remover cada dígito que esteja presente na cadeia de origem, por ex. para 0 :

=SUBSTITUTE("0123456789",IF(ISERROR(FIND("0",A1)),"","0"),"")

Então você precisa aninhá-lo para o próximo nível para trabalhar com o resultado:

=SUBSTITUTE(SUBSTITUTE("0123456789",IF(ISERROR(FIND("0",A1)),"","0"),""),IF(ISERROR(FIND("1",A1)),"","1"),"")

E para todos os dígitos:

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE("0123456789",IF(ISERROR(FIND("0",A1)),"","0"),""),IF(ISERROR(FIND("1",A1)),"","1"),""),IF(ISERROR(FIND("2",A1)),"","2"),""),IF(ISERROR(FIND("3",A1)),"","3"),""),IF(ISERROR(FIND("4",A1)),"","4"),""),IF(ISERROR(FIND("5",A1)),"","5"),""),IF(ISERROR(FIND("6",A1)),"","6"),""),IF(ISERROR(FIND("7",A1)),"","7"),""),IF(ISERROR(FIND("8",A1)),"","8"),""),IF(ISERROR(FIND("9",A1)),"","9"),"")

    
por 28.04.2016 / 14:32