Excel thay thế giá trị trong một cột bằng cách sử dụng một mẫu


0

Tôi nên bắt đầu bằng cách nói rằng tôi có thể quá phức tạp điều này. Tôi có một tệp chứa các giá trị cột nhất định được coi là dữ liệu bí mật. Trong hầu hết các trường hợp, chúng sẽ bị xóa khỏi bất kỳ tập dữ liệu nào sẽ được chia sẻ hoặc phân tích. Tuy nhiên, một yêu cầu đã được gửi để tạo một tập dữ liệu cho phép, trong số nhiều thứ khác, người dùng so sánh số lượng ID khác biệt so với tổng số mục. Vì vậy, trên 140.000 hồ sơ, tôi phải thay thế ba cột được coi là được bảo vệ.

Thách thức tôi gặp phải là làm thế nào để che giấu ID chữ và số 22 ký tự theo cách không còn nhận dạng, nhưng cũng duy trì một số mối quan hệ giữa các mục trùng lặp có thể tồn tại.

Hai cột khác dường như đã chuyển đổi mà không gặp sự cố sau khi điều chỉnh câu trả lời tôi tìm thấy ở đây để làm việc với các yêu cầu. Tuy nhiên, ID dài hơn vì một số lý do bị mất tính toàn vẹn khi cùng chức năng được chỉ vào nó. Tôi đã cố gắng hạn chế số lượng ký tự mà tôi đã thay đổi cùng một lúc, tuy nhiên điều đó dường như không giải quyết được vấn đề của tôi.

Kết quả cuối cùng mà tôi đang tìm kiếm, hoặc được cho biết tôi phải sản xuất chỉ là tập dữ liệu thô. Tôi không thể thực hiện việc phân nhóm dữ liệu cho người dùng cuối, họ phải nhận dữ liệu sao cho mỗi hàng chiếm một bản ghi và sau đó bất kỳ phân tích nào họ muốn hoàn thành từ đó.

Có cách nào tốt hơn để thực hiện những gì tôi đang cố gắng làm hơn liên kết ở trên / một tìm kiếm và thay thế thực sự lớn?


Ngoài ra, vì tôi thực sự không thể đăng dữ liệu mà tôi đang tìm cách áp dụng dữ liệu này, tôi nghĩ tôi nên cố gắng sao chép nó bằng cách nào đó để hỗ trợ cho bất kỳ câu trả lời tiềm năng nào có thể có ngoài đó.

Giả sử tôi có những ID này:

ID VTC DTE

A8894512374516347852001 110 8/9/2016

J7763473861247762551000 1180 8/9/2016

Q523732167498765146000 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

Bây giờ, những gì tôi đã hy vọng tìm thấy là một cách để lấy các trường hợp, như các bản ghi bắt đầu bằng "A889" và đảm bảo chúng kết thúc với nhau, nhưng không phải là các bản khác. Vấn đề là với số lượng hồ sơ (lên tới 170.000), số lượng ID riêng biệt có thể lên tới gần 120.000 phải được tính.

Câu trả lời:


0

Nói rằng chúng tôi có dữ liệu như:

nhập mô tả hình ảnh ở đây

Nhưng nhóm tuổi được coi là bí mật. Macro nhỏ này:

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

sẽ sản xuất:

nhập mô tả hình ảnh ở đây

Vì vậy, thực tế là cột đại diện cho các nhóm tuổi bị ẩn, nhưng bất kỳ nhóm thống kê nào sẽ được giữ lại.


Đây là một giải pháp tuyệt vời, và tôi chắc chắn có thể sử dụng nó ở những nơi khác. Điều đó nói rằng, tôi nghĩ rằng nó sẽ dẫn đến việc khái quát hóa quá mức các loại dữ liệu mà tôi đang xem hiện tại. Hãy để tôi sửa đổi câu hỏi một chút nữa.
phim truyền hình

@dramerus ...................... Được rồi ......................
Học sinh của Gary

Được rồi, có lẽ tôi phức tạp toàn bộ quá nhiều @ Học sinh của Gary? Giải pháp bạn cung cấp chắc chắn sẽ cho phép tôi nhóm các ID lại với nhau, vấn đề là mảng sẽ khá lớn khi nhìn vào loại dữ liệu này. Hãy nghĩ về ID này giống như một SSN hoặc một cái gì đó tương tự, nhưng một ID có thể có nhiều bản ghi được đính kèm. Trong trường hợp này, tôi cần có khả năng đảm bảo rằng mỗi hồ sơ đó giữ mối quan hệ của nó với những người khác.
phim truyền hình

@dramerus Bây giờ tôi đã hiểu ............... sẽ có thể xây dựng một bộ ID duy nhất và bảng dịch .................. .. Tôi sẽ cập nhật sau.
Học sinh của Gary
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.