คอลัมน์ค้นหาแมโครของ Excel D เซลล์ 1 คัดลอกวางคอลัมน์ B เซลล์ 7


-3

ใครสามารถช่วยสร้างแมโคร excel ได้ไหม

  A |  B |  C |  D |
----+----+----+----+
 20 |  ? | 75 |  2 |
 22 |  ? | 23 |  3 |
 23 |  ? | 25 |  5 |
 24 |  ? | 20 |  1 |
 50 |  ? | 36 |  2 |
 36 |  ? | 22 |  4 |
 75 |  ? | 12 |  1 |

หากเซลล์ 1 (75) จากคอลัมน์ C ค้นหาคอลัมน์ A หากพบว่า 75 (A7) ให้ป้อนคอลัมน์ D เซลล์ 1 (2) ลงในคอลัมน์ B เซลล์ 7 ทำซ้ำจนกว่าคอลัมน์ C จะเสร็จสิ้น กรุณาช่วยใด ๆ ที่ชื่นชม


ความคิดเห็นใด ๆ @AthomSfere
Joe

อีกถ้อยคำสำหรับคำถาม (สับสน): หากมีค่าในคอลัมน์ C อยู่ในคอลัมน์ A ให้เขียนค่าของคอลัมน์ D (ในคอลัมน์ B) ที่อยู่ในแถวเดียวกันโดยที่ค่านั้นอยู่ในคอลัมน์ C
Doktoro Reichard

คำตอบ:


1

คุณไม่จำเป็นต้องมีแมโครเลย เพียงใช้ฟังก์ชั่นในคอลัมน์ B สมมติว่าคุณอยู่ในแถวที่ 2 เพียงแค่ป้อนสิ่งนี้ลงใน B2 จากนั้นลากฟังก์ชั่นลง

=IF(C2=A2,D2,"")

ไม่ชัดเจนหากคุณหมายความว่า C ค้นหาคอลัมน์ A ทั้งหมดหรือเพียงแค่คอลัมน์ A สำหรับแถวนั้น หากคุณต้องการให้ C ค้นหาคอลัมน์ทั้งหมด:

=IF(ISNA(VLOOKUP(C2,A:A,1,FALSE)),"",D2)


RESULT:
    A   B   C   D
    20  2   75  2
    22  3   23  3
    23  5   25  5
    24      20  1
    50      36  2
    36  4   22  4
    75  1   12  1

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

=IF(ISNA(VLOOKUP(A2,C:D,2,FALSE)),"",VLOOKUP(A2,C:D,2,FALSE))

RESULT:
A   B   C   D
20  1   75  2
22  4   23  3
23  3   25  5
24      20  1
50      36  2
36  2   22  4
75  2   12  1

ต้องเปลี่ยน A3 เป็น A1 เพื่อทำงาน คุณเป็น Super Hero (ผู้ใช้) ขอบคุณฉันหวังว่าคุณและของคุณจะมีความสุขในวันหยุด
Joe

@ โจคุณสามารถคลิกเครื่องหมายถูกถัดจากคำตอบเพื่อยอมรับมัน คุณสามารถโหวตได้ถ้ามีประโยชน์
สกอตต์

-1

Sub SRI ()

lr = แผ่นงาน ("Sheet1") ช่วง ("C" & แถวจำนวน) .End (xlUp) .Row

i = 2

ทำในขณะที่ (แผ่นงาน ("Sheet1"). เซลล์ (i, 1) <> "")

strSearch = แผ่นงาน ("Sheet1"). เซลล์ (i, 1)

ตั้งค่า acell = ชีต ("Sheet1") ช่วง ("C2: C" & lr) ค้นหา (อะไร: = strSearch, LookIn: = xlVlaues, LookAt: = xlWhole, SearchOrder: = xlByRows, SearchDirection: = xlNext, MatchCase: = False, SearchFormat: = False)

หากไม่ได้เป็น acell ก็ไม่มีอะไรแล้ว

x = acell.Row

แผ่นงาน ("Sheet1"). เซลล์ (i, 2) = แผ่นงาน ("Sheet1"). เซลล์ (x, 4)

อื่น

Worksheets ("Sheet1"). Cells (i, 2) = "ไม่พบในคอลัมน์ C"

สิ้นสุดถ้า

i = i + 1

ห่วง

ส่วนท้าย

'' ความคิดเห็น *********** *******************************

'พิจารณาแถวแรกเป็นบางหัวเรื่องสำหรับแต่ละคอลัมน์

'รับค่าคอลัมน์ C "lr"

'การใช้ลูป Do Do เพื่อเปรียบเทียบค่าคอลัมน์ C กับคอลัมน์ A

'ค่าของคอลัมน์ A จะถูกนำไปที่ "strsearch" ทีละตัวเมื่อค่า "i" เพิ่มขึ้น

'จับคู่ค่า "strSearch" กับค่าคอลัมน์ C ใน "lr" และหากค่านั้นตรงกับ "acell"

'ตอนนี้ใช้เงื่อนไข IF NOT เพื่อดึงค่าคอลัมน์ D ที่สอดคล้องกันไปยังคอลัมน์ B

'หากค่าคอลัมน์ A ใด ๆ ไม่ปรากฏในคอลัมน์ C คอลัมน์ B ที่สอดคล้องกันนั้นจะได้รับการอัปเดตด้วยความคิดเห็น "ไม่พบในคอลัมน์ C"


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

อัปเดตคำตอบด้วยความคิดเห็น
SRI

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