Excel แทนที่ค่าในคอลัมน์โดยใช้รูปแบบ


0

ฉันควรเริ่มต้นด้วยการบอกว่าฉันอาจจะซับซ้อนกว่านี้ ฉันมีไฟล์ที่มีค่าคอลัมน์บางอย่างที่ถือว่าเป็นข้อมูลที่เป็นความลับ ในกรณีส่วนใหญ่พวกเขาจะถูกลบออกจากชุดข้อมูลใด ๆ ที่จะแบ่งปันหรือวิเคราะห์ อย่างไรก็ตามมีการส่งคำขอเพื่อสร้างชุดข้อมูลที่จะช่วยให้ผู้ใช้สามารถเปรียบเทียบจำนวน ID ที่แตกต่างกันเมื่อเปรียบเทียบกับจำนวนรายการทั้งหมด ดังนั้นในบางอย่างเช่นระเบียน 140,000 รายการฉันต้องแทนที่สามคอลัมน์ที่ถือว่าได้รับการปกป้อง

ความท้าทายที่ฉันกำลังเผชิญอยู่คือวิธีการปกปิดรหัสตัวอักษรและตัวเลข 22 ตัวอักษรในลักษณะที่ไม่สามารถระบุได้อีกต่อไป แต่ยังรักษาความสัมพันธ์ที่คล้ายคลึงกันระหว่างรายการที่ซ้ำกัน

คอลัมน์อีกสองคอลัมน์ดูเหมือนจะแปลงโดยไม่เกิดอุบัติเหตุหลังจากปรับคำตอบที่ฉันพบที่นี่เพื่อทำงานกับข้อกำหนด ID ที่ยาวขึ้น แต่ด้วยเหตุผลบางอย่างทำให้สูญเสียความสมบูรณ์เมื่อฟังก์ชั่นเดียวกันถูกชี้ไปที่มัน ฉันพยายาม จำกัด จำนวนตัวละครที่ฉันเปลี่ยนไปในคราวเดียวอย่างไรก็ตามดูเหมือนจะไม่สามารถแก้ปัญหาของฉันได้

ผลลัพธ์สุดท้ายที่ฉันกำลังมองหาหรือได้รับการบอกกล่าวว่าฉันต้องผลิตเป็นเพียงชุดข้อมูลดิบ ฉันไม่สามารถจัดกลุ่มข้อมูลสำหรับผู้ใช้พวกเขาต้องได้รับเช่นนั้นแต่ละแถวบัญชีหนึ่งระเบียนและจากนั้นการวิเคราะห์สิ่งที่พวกเขาต้องการให้เสร็จสมบูรณ์จากที่นั่น

มีวิธีที่ดีกว่าในการบรรลุสิ่งที่ฉันพยายามทำมากกว่าลิงก์ด้านบน / การค้นหาและแทนที่ที่มีขนาดใหญ่จริง ๆ หรือไม่


เพิ่มเติม: เนื่องจากฉันไม่สามารถโพสต์ข้อมูลที่ฉันต้องการนำไปใช้จริงฉันไม่คิดว่าฉันควรพยายามทำซ้ำเพื่อช่วยในคำตอบที่อาจเกิดขึ้นได้

สมมติว่าฉันมีรหัสเหล่านี้:

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

ตอนนี้สิ่งที่ฉันหวังว่าจะได้พบคือวิธีในการใช้อินสแตนซ์เช่นบันทึกที่เริ่มต้นด้วย "A889" และทำให้พวกเขาลงเอยด้วยกัน แต่ไม่ใช่คนอื่น ปัญหาคือจำนวนระเบียน (สูงถึง 170,000) จำนวนหมายเลข ID ที่แตกต่างกันน่าจะใกล้เคียงกับ 120,000 ที่จะต้องนำมาพิจารณา

คำตอบ:


0

สมมติว่าเรามีข้อมูลเช่น:

ป้อนคำอธิบายรูปภาพที่นี่

แต่กลุ่มอายุถือว่าเป็นความลับ มาโครตัวจิ๋วนี้:

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

จะผลิต:

ป้อนคำอธิบายรูปภาพที่นี่

ดังนั้นความจริงที่ว่าคอลัมน์แสดงถึงกลุ่มอายุจะถูกซ่อน แต่การจัดกลุ่มทางสถิติใด ๆ จะถูกเก็บไว้


นี่เป็นทางออกที่ยอดเยี่ยมและฉันสามารถใช้งานได้ในที่อื่นอย่างแน่นอน ที่กล่าวว่าฉันคิดว่ามันจะนำไปสู่การวางนัยทั่วไปของประเภทของข้อมูลที่ฉันกำลังดู ขอผมแก้ไขคำถามอีกหน่อย
dramerus

@dramerus ...................... โอเค ......................
นักเรียนของ Gary

โอเคบางทีฉันอาจจะซับซ้อนทั้งสิ่งมากเกินไป @ Gary's Student? วิธีแก้ปัญหาที่คุณให้มาจะทำให้ฉันจัดกลุ่ม ID ด้วยกันปัญหาคืออาร์เรย์จะค่อนข้างใหญ่เมื่อดูข้อมูลประเภทนี้ ลองนึกถึง ID นี้มากกว่า SSN หรืออะไรทำนองนั้น แต่ ID ที่อาจมีหลายระเบียนติดอยู่ ในกรณีนี้ฉันต้องสามารถมั่นใจได้ว่าแต่ละระเบียนเหล่านั้นรักษาความสัมพันธ์กับบันทึกอื่น ๆ
dramerus

@dramerus ตอนนี้ฉันเข้าใจแล้ว ............... จะสามารถสร้างคอลเลกชันID ที่ไม่ซ้ำกันและตารางการแปล .................. .. ฉันจะอัปเดตในภายหลัง
นักเรียนของ Gary
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.