Excel zamienia wartość w kolumnie za pomocą wzorca

0

Powinienem zacząć od stwierdzenia, że ​​prawdopodobnie nadmiernie to komplikuję. Mam plik zawierający pewne wartości kolumn, które są uważane za dane poufne. W większości przypadków byłyby usuwane z dowolnego zestawu danych, który byłby udostępniany lub analizowany. Złożono jednak żądanie wygenerowania zestawu danych, który pozwoliłby między innymi użytkownikowi na porównanie liczby różnych identyfikatorów w porównaniu z całkowitą liczbą wpisów. Tak więc w około 140 000 rekordów muszę zastąpić trzy kolumny uważane za chronione.

Wyzwanie, przed którym stoję, polega na zamaskowaniu 22-znakowego alfanumerycznego identyfikatora w taki sposób, aby nie był już identyfikowany, ale zachowywał również pozory relacji między zduplikowanymi wpisami, które mogą istnieć.

Wydaje się, że dwie pozostałe kolumny zostały przekonwertowane bez żadnych incydentów po dostosowaniu odpowiedzi, którą znalazłem tutaj, aby pracować z wymaganiami. Jednak dłuższy identyfikator z jakiegoś powodu utracił integralność, gdy wskazano na niego tę samą funkcję. Próbowałem ograniczyć liczbę zmienianych przeze mnie znaków, ale to nie rozwiązało mojego problemu.

Końcowym rezultatem, którego szukam lub którym powiedziano mi, że muszę produkować, jest tylko surowy zestaw danych. Nie mogę pogrupować danych dla użytkownika końcowego, muszą je otrzymać w taki sposób, że każdy wiersz odpowiada jednemu rekordowi, a następnie jakiejkolwiek analizie, którą chcą ukończyć.

Czy istnieje lepszy sposób na osiągnięcie tego, co próbuję zrobić, niż powyższy link / naprawdę duże znalezisko i zamień?


Dodatek: Ponieważ nie mogę opublikować danych, do których chcę to zastosować, pomyślałem, że powinienem spróbować w jakiś sposób je replikować, aby pomóc w uzyskaniu potencjalnych odpowiedzi na to pytanie.

Załóżmy, że mam te identyfikatory:

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

Teraz chciałem znaleźć instancję, na przykład zapisy zaczynające się od „A889” i upewnić się, że skończyły razem, ale nie inne. Problem polega na tym, że przy liczbie rekordów (do 170 000) liczba różnych numerów identyfikacyjnych jest prawdopodobnie zbliżona do 120 000, które należałoby uwzględnić.

dramerus
źródło

Odpowiedzi:

0

Powiedzmy, że mamy takie dane jak:

wprowadź opis zdjęcia tutaj

Ale grupa wiekowa jest uważana za poufną. To małe makro:

Sub HideSensitiveFactor()
    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

będzie produkować:

wprowadź opis zdjęcia tutaj

Tak więc fakt, że kolumna reprezentuje grupy wiekowe, jest ukryty, ale wszelkie statystyczne grupy zostaną zachowane.

Uczeń Gary'ego
źródło
To świetne rozwiązanie iz pewnością mogę go wykorzystać w innych miejscach. To powiedziawszy, myślę, że doprowadziłoby to do uogólnienia rodzaju danych, na które patrzę obecnie. Pozwól, że poprawię nieco to pytanie.
dramerus,
@dramerus ...................... Dobra ......................
Student Gary'ego
Okej, może za bardzo skomplikowałem całą sprawę @ Student Gary'ego? Podane przez Ciebie rozwiązanie z pewnością pozwoliłoby mi pogrupować identyfikatory, problem polega na tym, że tablica byłaby dość duża, patrząc na tego rodzaju dane. Pomyśl o tym identyfikatorze bardziej jak SSN lub coś w tym rodzaju, ale o identyfikatorze, do którego może być dołączonych wiele rekordów. W takim przypadku muszę być w stanie zapewnić, że każdy z tych zapisów zachowuje związek z innymi.
dramerus,
@dramerus Teraz rozumiem ............... zbuduje kolekcję unikalnych identyfikatorów i tabelę tłumaczeń .................. .. zaktualizuję później.
Gary's Student,