Page 2 of 2

Re: Stationery Record and Monitoring for charge

Posted: Sun Dec 16, 2012 11:43 am
by bank9597
:D ลองแนบไฟล์ตัวล่าสุด มาดูกันอีกครั้งได้ไหมครับ

Re: Stationery Record and Monitoring for charge

Posted: Sun Dec 16, 2012 6:27 pm
by yukioh
Attached file..

Re: Stationery Record and Monitoring for charge

Posted: Sun Dec 16, 2012 6:49 pm
by snasui
:D คำตอบที่ถูกต้องคืออะไรและทำไมถึงต้องได้คำตอบนั้น :?: ช่วยอธิบายมาด้วยครับ

Re: Stationery Record and Monitoring for charge

Posted: Mon Dec 17, 2012 8:45 pm
by yukioh
ค้าที่ถูกต้องควนจะเป็นดั่งต่อไปนี้:
ถ้าหาก cell A5 = "AD"
B5 ควนจะทีค้า 51001
C5 ควนจะทีค้า N05
D5 ควนจะทีค้า -
E5 ควนจะทีค้า -
F5 ควนจะทีค้า -
G5 ควนจะทีค้า -
H5 ควนจะทีค้า -
I5 ควนจะทีค้า -
J5 ควนจะทีค้า -
K5 ควนจะทีค้า PS
L5 ควนจะทีค้า NF
ต่ามข้อมูนในตะราง sheet "DBASE-CODE", cell สีเขียวควนจะ show code และ cell สีเหลือง show จำนวนเงีนครับ

Re: Stationery Record and Monitoring for charge

Posted: Mon Dec 17, 2012 9:03 pm
by snasui
:D จากไฟล์ล่าสุดที่แนบมา จะใช้สูตรตามด้านล่างไม่ได้ครับ
yukioh wrote:-และ ทำไม formula:
=LOOKUP(9.99999999999999E+307,CHOOSE({1,2},0,IF($A4<>"",LOOKUP(2,1/($A4=INDIRECT("'"&SUBSTITUTE(B$2," ","")&"'!B4:B110")),INDIRECT("'"&SUBSTITUTE(B$2," ","")&"'!L2:L110")))))

มันไม่สะแดงผนครับอาจาน?
ลองตามนี้ครับ

ที่ชีท Summary เซลล์ B5 คีย์

=INDEX(INDIRECT("'"&B$2&"'!B2:L32"),MATCH($A5,INDIRECT("'"&B$2&"'!A2:A32"),0),MATCH(B$3,INDIRECT("'"&B$2&"'!B1:L1"),0))

Enter > Copy ไปยังเซลล์ที่เกี่ยวข้อง

Re: Stationery Record and Monitoring for charge

Posted: Mon Dec 24, 2012 8:19 am
by yukioh
ขอบคุณครับ อาจารย์
ผมได้คีย์ ใส่แล้วครับ,
มันยังมีปัญหา ตรงที่ ถ้าผม ใช้ปุ่ม " 1) Get All Data " เซลล์ B5 ถิง เซลล์ L5 จะไม่สะแดง ค้าใดใด
แต่ถ้าผม พิมเอา ตัวอย่างเช้น AD ที่ เซลล์ A5, เซลล์ B5 ถิง เซลล์ L5 ก็จะได้ผน
ไม้รู้เป็นเพราะอะไรครับ?

Re: Stationery Record and Monitoring for charge

Posted: Mon Dec 24, 2012 11:14 am
by snasui
:D ลองปรับ Code เป็นตามด้านล่างครับ

Code: Select all

Sub Get_data_all_item() ' GET DATA FROM ALL ITEM
    Dim rSource As Variant
    Dim rTarget As Range
    Dim i As Integer, j As Integer
    
    Sheets("Summary").Range("A4:A" & Rows.Count).Clear
    rSource = Array("PEN", "DVD", "CD", "A4")
    For i = 0 To UBound(rSource)
        With Sheets(rSource(i))
            Set rTarget = Sheets("Summary").Range("A" & Rows.Count).End(xlUp).Offset(1, 0)
            j = Application.Match("Summary", .Range("B:B"), 0)
            .Range(.Range("B" & j).Offset(2, 0), .Range("B" & Rows.Count).End(xlUp)).Copy rTarget
        End With
    Next i
    With Sheets("Summary")
        .Range("A4", .Range("A" & Rows.Count).End(xlUp)) _
        = .Range("A4", .Range("A" & Rows.Count).End(xlUp)).Value
        .Range("A4", .Range("A" & Rows.Count).End(xlUp)). _
            RemoveDuplicates Columns:=1, Header:=xlNo
    End With
End Sub

Re: Stationery Record and Monitoring for charge

Posted: Mon Dec 24, 2012 2:40 pm
by yukioh
ผมได้ปรับ Code ตามที่อาจารย์ให้มาแล้วครับ มัน Work แล้วลละครับ ขอบคุณครับ อาจารย์ :thup:

ผมบออนุญาต ถามต่ออีกนะครับ
หลังจากที่ได้ข้อมูนทุกอย่างใน Summary sheet แล้ว ผมต้องกานที่จะเอาข้อมูนจาก Summary sheet มาสะหลุบ ในรูบแบบทางด้านบันชี ใน sheet "Voucher"
ผ่านมา ผมต้องคอย Copy หรีอไม่ก็ทำเป็น Link มาใสใน sheet "Voucher"
ผมได้ทำตัวอย่าง ไว้ใน sheet "Voucher" แล้วครับ, พอจะมีวิธี ที่เร็วกว่านี้ไหมครับ :?:

รบกวนบอาจารย์ ด้วยครับ..

Re: Stationery Record and Monitoring for charge

Posted: Mon Dec 24, 2012 3:10 pm
by snasui
:D ในชีท Voucher ลองตามนี้ครับ
  1. ที่เซลล์ D3 คีย์สูตร
    =INDEX(Summary!$B$4:$B$16,COUNTIF(A$3:A3,A3))
    Enter > Copy ลงด้านล่าง
  2. ที่เซลล์ E3 คีย์สูตร
    =INDEX(Summary!$M$4:$P$16,MATCH($B3,Summary!$A$4:$A$16,0),MATCH($A3,Summary!$M$3:$P$3,0))
    Enter > Copy ลงด้านล่าง
  3. ที่เซลล์ G3 คีย์สูตร
    =INDEX(Summary!$C$4:$L$16,MATCH($B3,Summary!$A$4:$A$16,0),MATCH(G$2,Summary!$C$3:$L$3,0))
    Enter > Copy ไปทางขวาและลงด้านล่าง

Re: Stationery Record and Monitoring for charge

Posted: Mon Dec 24, 2012 10:11 pm
by yukioh
ขอบคุณครับ อาจารย์
ผมได้คีย์ ใส่แล้ว, work มากครับ,

อาจารย์ครับ เนื้องจากว่า ข้อมูลในแต่ละเดือนนั้น มีมากน้อยแตกต่างกันออกไป
สมมุติว่า เดีอนนี้ อาดจะมีพะแนก AD1 เพี้มขิ้นมา แล้วเบีกใช้รายกาน "A4..etc" เพี้มขิ้นมา เราจะทำ voucher ยังไงให้มากโดย automatic ครับ ?

Re: Stationery Record and Monitoring for charge

Posted: Mon Dec 24, 2012 10:24 pm
by snasui
:D ลองทำเป็นตัวอย่างมาใหม่ครับว่าแผนกที่บอกว่าเพิ่มเข้ามานั้นเป็นอย่างไร และปัญหาที่ว่านั้นเกิดลักษณะใด จะได้เข้าใจตรงกันครับ

Re: Stationery Record and Monitoring for charge

Posted: Mon Dec 24, 2012 11:08 pm
by yukioh
อาจารย์, ผมได้เพี่มแผนกเข้าไปใน sheet "summary" แล้วครับ ผมเพี่มแผนก:
AD1 เบีกใข้ CD, DVD และ PEN
AD2 เบีกใข้ CD และ PEN
ETIP POL TUI เบีกใข้ PEN
ETIP POL POU เบีกใข้ PEN

ปัญหาที่ว่านั้น คิอเกิด จะเหันว่า Voucher จะไม่มีแผนก ดั่งที่ผมเพี่มเข้ามา

Re: Stationery Record and Monitoring for charge

Posted: Tue Dec 25, 2012 7:07 am
by snasui
:D ลองตามนี้ครับ

ที่ชีท Voucher
  1. เซลล์ B2 คีย์สูตรเพื่อนับว่ามีจำนวนรายการเท่าใด
    =COUNTA(Summary!A4:A10000)
    Enter
  2. เซลล์ A3 คีย์สูตร
    =INDEX({"A4","CD","CASE CD","DVD","PEN"},INT((ROWS(A$3:A3)-1)/Voucher!$B$2)+1)
    Enter > Copy ลงไปด้านล่าง
  3. เซลล์ B3 คีย์สูตร
    =INDEX(Summary!$A$4:$A$10000,MOD((ROWS(A$3:A3)-1),Voucher!$B$2)+1)
    Enter > Copy ลงด้านล่าง
  4. ที่เซลล์ D3 ปรับช่วงในสูตรเพิ่มจากเดิมเป็น
    =INDEX(Summary!$B$4:$B$10000,COUNTIF(A$3:A3,A3))
    Enter > Copy ลงด้านล่าง
  5. เซลล์ E3 ปรับช่วงในสูตรเพิ่มจากเดิมเป็น
    =INDEX(Summary!$M$4:$AT$10000,MATCH($B3,Summary!$A$4:$A$10000,0),MATCH($A3,Summary!$M$3:$AT$3,0))
    Enter > Copy ลงด้านล่าง
  6. เซลล์ G3 ปรับช่วงในสูตรเพิ่มจากเดิมเป็น
    =INDEX(Summary!$C$4:$L$10000,MATCH($B3,Summary!$A$4:$A$10000,0),MATCH(G$2,Summary!$C$3:$L$3,0))
    Enter > Copy ไปด้านขวาและลงด้านล่าง

Re: Stationery Record and Monitoring for charge

Posted: Tue Dec 25, 2012 7:32 am
by yukioh
ตรงเป๊ะเลียครับ :thup:
ขอบคุณมากครับอาจารย์ สำหรับความช่วยเหลือ,ความกรุณาของอาจารย์ และ ชื่นชมอาจารย์ :D

Re: Stationery Record and Monitoring for charge

Posted: Tue Dec 25, 2012 1:50 pm
by yukioh
อาจารย์ครับ,
ผมได้ใส่(เพี้ม) item เข้าไปทังหมดใน ปุ่ม "1) Get All Data" รู้สิกว่ามันทำงานช้ามากมากเลียครับเวลาเรากดปุ่ม
ผมลองจับเวลาดูแล้ว ประมาณ 10 นาทีครับ ไม้รู้เป็นเพระอะไร?

file attached with link below:

http://www.mediafire.com/?n9kt3hoawlfdfhg

Re: Stationery Record and Monitoring for charge

Posted: Tue Dec 25, 2012 2:17 pm
by snasui
:D ผมขออภัยที่จะไม่ดูไฟล์แนบครับ เนื่องจากผมคิดว่าผมน่าจะเดาได้จากไฟล์ที่แนบมาก่อนหน้านี้ หรือหากว่าผมเดาผิดช่วยแจ้งเข้ามาอีกรอบครับ

การหา Unique List (ค่าที่ไม่ซ้ำ) ในชีทต่าง ๆ เป็นการใช้สูตร Array และสูตร Array นั้นไม่เหมาะกับข้อมูลจำนวนมาก แทนที่จะใช้สูตร Array ให้ใช้ VBA เข้ามาช่วยแทนครับ

Re: Stationery Record and Monitoring for charge

Posted: Tue Dec 25, 2012 5:01 pm
by yukioh
รบกวน อาจารย์ครับ
ไม่รู้จะเขียน vba ยังไงครับ vba ก็ไม่ค่อยรู้มากสักเท้าไหร

Re: Stationery Record and Monitoring for charge

Posted: Tue Dec 25, 2012 5:03 pm
by snasui
:D ไม่ค่อยรู้จักก็ยังไม่ควรใช้หรือใช้เท่าที่คิดว่าเข้าใจ ปรับปรุงเองได้ครับ และหากจะช้าก็ต้องยอมรับความช้านั้นครับ

Re: Stationery Record and Monitoring for charge

Posted: Sat Dec 29, 2012 3:39 pm
by yukioh
ขอบคุณมากครับอาจารย์