Page 1 of 1

การ Pivot ข้อมูลที่คั่นด้วยลูกน้ำ

Posted: Wed Apr 13, 2016 7:31 pm
by Chonlakritzz
รบกวนสอบถามครับ
พอดีผมใช้เครื่องมือ Google Form ในการรวบรวมคำตอบสินค้าที่ขาดจากน้องๆ ที่อยู่คนละสาขา
ซึ่งรวบรวมได้สะดวกมาก แต่ พอได้คำตอบมา ผม Pivot ไม่ได้เนื่องจาก ข้อมูลเป็นแบบนี้ มีลูกน้ำคั่น

ตัวอย่าง (ในเอกสารแนบ)

8850002017580 ยาสีฟันซิสเท็มม่าสปริง 160 กรัม, 8850002026254 แปรงซอลส์ดิฟแอนด์แนโรว์แอ็คทิฟ, 8850002008953 ยาสีฟันซอลส์เฟรช 90 กรัม

สิ่งที่อยากได้
8850002017580 ยาสีฟันซิสเท็มม่าสปริง 160 กรัม
8850002026254 แปรงซอลส์ดิฟแอนด์แนโรว์แอ็คทิฟ
8850002008953 ยาสีฟันซอลส์เฟรช 90 กรัม


หรือแบบไหนก็ได้ครับที่ให้ผม Pivot สรุปข้อมูลได้

Re: การ Pivot ข้อมูลที่คั่นด้วยลูกน้ำ

Posted: Sun Apr 17, 2016 8:32 pm
by snasui
:D แจ้งให้น้องๆ กรอกข้อมูลมาเป็น Database แทนการคั่นด้วยลูกน้ำ หรือติดปัญหาใดที่ไม่สามารถทำเป็น Database ได้ครับ :?:

หากติดปัญหาจำเป็นจะต้องแปลงข้อมูลที่คั่นด้วยลูกน้ำมาเป็นข้อมูลแยกบรรทัดเสียก่อนด้วย VBA ซึ่งต้องเขียนมาเองก่อน ติดแล้วค่อยถามกันต่อครับ

Re: การ Pivot ข้อมูลที่คั่นด้วยลูกน้ำ

Posted: Mon Apr 18, 2016 8:24 pm
by Chonlakritzz
ตอบคำถามแรก ตัวฟอร์มจาก Google ครับ ซึ่งคนกรอกจะกรอกง่าย แต่เบื้องหลังข้อมูลจะรวมมาครับ

ขอถามเพิ่มครับอาจารย์ พอดีผมยังไม่เก่งเรื่อง VBA
1.ถ้าผมแยกข้อมูลออกมา Text to Column แล้วจะนำข้อมูลจากคอลัมภ์สินค้าที่ 2 (คอลัมภ์ E) เป็นต้นไป
ให้มาต่อด้านล่างของคอลัมภ์สินค้าที่ 1 (คอลัมภ์ D) โดยให้มี ชื่อสาขาและวันที่มาด้วยได้ไหมครับ

ตามไฟล์แนบคือ ฃ่องที่มีสีต่างๆ ให้มาอยู่ในตำแหน่งตามสีด้านล่างครับ

ปล.สุดท้ายถ้าต้องใช้เรื่อง VBA จริงๆอาจารย์บอกนะครับ

Re: การ Pivot ข้อมูลที่คั่นด้วยลูกน้ำ

Posted: Tue Apr 19, 2016 9:54 pm
by snasui
:D ตัวอย่างการใช้สูตรครับ
  1. ที่ชีต Lotus แทรกคอลัมน์หน้าสุด 2 คอลัมน์เพื่อเป็นคอลัมน์ช่วย
    1. เซลล์ B2 คีย์สูตรเพื่อนับค่าที่ไม่เป็นค่าว่างในบรรทัดนั้น ๆ
      =COUNTA(E2:K2)
      Enter > Copy ลงด้านล่าง
    2. เซลล์ A2 คีย์สูตรเพื่อให้หมายเลขบรรทัดที่เริ่มข้อมูลหากนำค่าในข้อ 1 มาเรียงต่อกัน
      =SUM(B$2:B2)-B2+1
      Enter > Copy ลงด้านล่าง
    3. เซลล์ B24 รวมยอดค่าในเซลล์ B2:B23 คีย์สูตร
      =SUM(B2:B23)
      Enter
  2. เพิ่ม Sheet1 เพื่อทำเป็น Database ใหม่
    1. เซลล์ A1:D1 คีย์ค่า Line, Lotus สาขา, วันที่ และ สินค้าที่ OOS ตามลำดับ
    2. เซลล์ A2 คีย์สูตร
    3. =IF(ROWS(B$2:B2)>Lotus!$B$24,"",LOOKUP(ROWS(B$2:B2),Lotus!$A$2:$A$23,Lotus!A$2:A$23))
      Enter > Copy ลงด้านล่าง
    4. เซลล์ B2 คีย์สูตร
      =IF(ROWS(C$2:C2)>Lotus!$B$24,"",LOOKUP(ROWS(C$2:C2),Lotus!$A$2:$A$23,Lotus!D$2:D$23))
      Enter > Copy ไปยัง C2 แล้ว Copy เซลล์ B2:C2 ลงด้านล่าง
    5. เซลล์ D2 คีย์สูตร
      =IF(N(A2),INDEX(Lotus!$E$2:$K$23,MATCH(A2,Lotus!$A$2:$A$23,0),COUNTIF(A$2:A2,A2)),"")
      Enter > Copy ลงด้านล่าง
  3. นำ Database ตามข้อ 2 ไปทำ PivotTable ตามต้องการ

Re: การ Pivot ข้อมูลที่คั่นด้วยลูกน้ำ

Posted: Wed Apr 20, 2016 5:42 am
by Chonlakritzz
ขอบคุณครับอาจารย์ประหยัดเวลาไปเยอะเลย
แต่ผมต้องแก้ ข้อ 4 เป็นเซลล์ B2 C$2:C$23 ก่อน แล้วค่อย Copy>วางเปลี่ยนเป็น D$2:D$23 ถูกไหมครับ

เซลล์ B2 คีย์สูตร
=IF(ROWS(C$2:C2)>Lotus!$B$24,"",LOOKUP(ROWS(C$2:C2),Lotus!$A$2:$A$23,Lotus!D$2:D$23))
Enter > Copy ไปยัง C2 แล้ว Copy เซลล์ B2:C2 ลงด้านล่าง

Re: การ Pivot ข้อมูลที่คั่นด้วยลูกน้ำ

Posted: Wed Apr 20, 2016 7:23 am
by snasui
:D ตามที่ผมแจ้งไปนั้นสูตรจะเปลี่ยนเอง ไม่ต้องแก้ไขอะไรอีกครับ

หากยังไม่ได้คำตอบให้แนบไฟล์ที่ปรับปรุงเองแล้วมาดูกันอีกทีครับ