วิธีการนับสตริงในคอลัมน์ทั้งหมดสำหรับแถวที่มีค่าที่แน่นอน


0

VBA newbie ที่นี่และฉันดูยากที่จะหามาโครที่ฉันสามารถปรับแต่งและรวมเข้าด้วยกันเพื่อทำสิ่งนี้ให้สำเร็จ

ฉันได้วางข้อมูลตัวอย่างของฉันไว้ท้ายบทความนี้ ฉันต้องการผ่านคอลัมน์ 1 (ID_Num) และค้นหาแถวทั้งหมดด้วย ID_Num เดียวกัน (ควรอยู่ติดกันในคอลัมน์เนื่องจากแผ่นถูกเรียงตาม ID_Num) จากนั้นวางจำนวน 1 สำหรับลูกค้าแต่ละรายเมื่อพบสตริง "A", "B" หรือ "C" ใต้คอลัมน์ลูกค้าสำหรับแต่ละแถวของบล็อกที่มี ID_Nums เหมือนกัน การนับไม่ควรมากกว่า 1 เช่นถ้าสตริง "A" หรือ "B" หรือ "C" อยู่ในช่วงจากนั้นมีการลงทะเบียน 1 มิฉะนั้นจะมีการลงทะเบียน 0 ความเป็นไปได้อื่น ๆ คือ "D" หรือช่องว่าง

ฉันต้องการมีเพียงหนึ่งแถวต่อ ID_Num หลังจากขั้นตอนนี้

ในที่สุดฉันต้องการเพิ่ม 1 และ 0 เหล่านี้สำหรับแต่ละ ID_Num

ฉันได้แนบตัวอย่างของข้อมูลที่ฉันมีและสถานที่ที่ฉันต้องการจะจบลง

ตัวอย่างข้อมูลต้นฉบับ

ID_Num | ลูกค้า 1 ลูกค้า 2 ลูกค้า 3 ลูกค้า 4 ลูกค้า 5

aaa | A A D B D

aaa | B D D B A

aaa | D D D A B

bbb | C A D D C

ccc | D A A A D

ccc | A C B D D

ddd | D D D D D

ขั้นตอนแรก

ID_Num | ลูกค้า 1 ลูกค้า 2 ลูกค้า 3 ลูกค้า 4 ลูกค้า 5

aaa | 1 1 0 1 1

bbb | 1 1 0 0 1

ccc | 1 1 1 1 0 0

ddd | 0 0 0 0 0

ขั้นตอนที่สอง

ID_Num | การนับครั้งสุดท้าย

aaa | 4
bbb | 3
ccc | 4
ddd | 0

มี 100 คอลัมน์ลูกค้า

ขออภัยเกี่ยวกับการจัดรูปแบบ ฉันได้รวมลิงค์ไปยังรูปภาพที่แสดงข้อมูลเดียวกัน เว็บไซต์ไม่อนุญาตให้ฉันอัปโหลดภาพ

ตัวอย่างข้อมูล

ฉันอยากจะขอบคุณความช่วยเหลือใด ๆ. ขอบคุณล่วงหน้า!


ฉันค่อนข้างแน่ใจว่าสิ่งนี้สามารถทำได้ด้วยสูตรไม่จำเป็นต้องใช้ VBA ที่ฉันเห็น ทำไมคุณถึงต้องการใช้ VBA
DavePenn

ฉันควรได้กล่าวว่าการใช้ VBA ไม่ใช่ข้อกำหนด ขอโทษด้วยกับเรื่องนั้น.
charistivity

คำตอบ:


0

ถ้า Sheet1 มี Data เริ่มต้นในคอลัมน์ Sheet2 คือ ID_Num และ Row1 เป็นลูกค้าในการเขียน B2

=IF(OR(COUNTIFS(Sheet1!$A:$A,$A2,Sheet1!B:B,"A")>0,COUNTIFS(Sheet1!$A:$A,$A2,Sheet1!B:B,"B")>0,COUNTIFS(Sheet1!$A:$A,$A2,Sheet1!B:B,"C")>0),1,0)

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

=Sum(B2:ZZ2)
แทนที่ ZZ2 ด้วยคอลัมน์ลูกค้ารายสุดท้ายแล้วลากลง

ถ้าคุณต้องการขั้นตอนที่สองเพียงอย่างเดียวคัดลอกคอลัมน์ ID_Num และวางลงในแผ่นงานใหม่และคัดลอกคอลัมน์ของการนับครั้งสุดท้ายใช้วางค่าพิเศษในแผ่นงานใหม่ใกล้กับคอลัมน์ของ ID_Num


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