Excel substituir valor em uma coluna usando um padrão

0

Eu deveria começar dizendo que provavelmente estou complicando demais isso. Eu tenho um arquivo que contém certos valores de coluna que são considerados dados confidenciais. Na maioria dos casos, eles seriam removidos de qualquer conjunto de dados que seria compartilhado ou analisado. No entanto, uma solicitação foi enviada para gerar um conjunto de dados que permitiria, entre muitas outras coisas, que o usuário comparasse o número de IDs distintos em comparação com o número total de entradas. Assim, em algo como 140.000 registros, eu tenho que substituir três colunas que são consideradas protegidas.

O desafio que estou enfrentando é como mascarar um ID alfanumérico de 22 caracteres de forma que ele não seja mais identificado, mas também mantenha alguma aparência de relação entre entradas duplicadas que possam existir.

As outras duas colunas parecem ter sido convertidas sem incidentes após a adaptação de resposta eu encontrei aqui para trabalhar com os requisitos. O ID mais longo, porém, por algum motivo, perdeu a integridade quando a mesma função foi apontada para ele. Eu tentei restringir o número de caracteres que eu estava mudando de uma vez, mas isso não pareceu resolver o meu problema.

O resultado final que estou procurando, ou que me disseram que tenho que produzir, é apenas o conjunto de dados brutos. Eu não posso fazer o agrupamento dos dados para o usuário final, eles têm que recebê-lo de tal forma que cada linha representa um registro e, em seguida, qualquer análise que eles queriam concluir a partir daí.

Existe uma maneira melhor de realizar o que estou tentando fazer do que o link acima / encontrar e substituir realmente grande?

Adição: Como não posso publicar os dados para os quais estou aplicando, achei que deveria tentar replicá-los de alguma forma para ajudar em possíveis respostas que possam estar disponíveis.

Suponha que eu tenha esses IDs:

ID VTC DTE

A8894512374516347852001 110 8/9/2016

J7763473861247762551000 1180 8/9/2016

Q4523732167498765146000 375 8/9/2016

T6348761321688873431001 703 8/9/2016

H6676314656873346615001 375 8/9/2016

A8894512374516347852001 5091 8/9/2016

T6348761321688873431001 5091 8/9/2016

S8897613515646873143168 375 8/9/2016

Agora, o que eu esperava encontrar era uma maneira de tomar exemplos, como os registros que começaram com "A889" e garantir que eles terminassem juntos, mas não os outros. A questão é que, com o número de registros (até 170.000), o número de IDs distintos é provavelmente próximo de 120.000, o que teria de ser contabilizado.

    
por dramerus 01.08.2016 / 17:33

1 resposta

0

Digamos que tenhamos dados como:

Masafaixaetáriaéconsideradaconfidencial.Estapequenamacro:

SubHideSensitiveFactor()ary=Array("10 - 19", "20 - 29", "30 - 39", "40 - 69", "70 - 200")
    bry = Array("grp1", "grp2", "grp3", "grp4", "grp5")
    Dim rng As Range, i As Long
    Set rng = Range("B:B")

    For i = LBound(ary) To UBound(ary)
        rng.Replace what:=ary(i), replacement:=bry(i)
    Next i
End Sub

produzirá:

Portanto, o fato de a coluna representar grupos etários está oculto, mas todos os grupos estatisticamente serão mantidos.

    
por 01.08.2016 / 18:46