Page 2 of 2
Re: Stationery Record and Monitoring for charge
Posted: Sun Dec 16, 2012 11:43 am
by bank9597

ลองแนบไฟล์ตัวล่าสุด มาดูกันอีกครั้งได้ไหมครับ
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

คำตอบที่ถูกต้องคืออะไรและทำไมถึงต้องได้คำตอบนั้น

ช่วยอธิบายมาด้วยครับ
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

จากไฟล์ล่าสุดที่แนบมา
จะใช้สูตรตามด้านล่างไม่ได้ครับ
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

ลองปรับ 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 แล้วลละครับ ขอบคุณครับ อาจารย์
ผมบออนุญาต ถามต่ออีกนะครับ
หลังจากที่ได้ข้อมูนทุกอย่างใน 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

ในชีท Voucher ลองตามนี้ครับ
- ที่เซลล์ D3 คีย์สูตร
=INDEX(Summary!$B$4:$B$16,COUNTIF(A$3:A3,A3))
Enter > Copy ลงด้านล่าง
- ที่เซลล์ 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 ลงด้านล่าง
- ที่เซลล์ 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

ลองทำเป็นตัวอย่างมาใหม่ครับว่าแผนกที่บอกว่าเพิ่มเข้ามานั้นเป็นอย่างไร และปัญหาที่ว่านั้นเกิดลักษณะใด จะได้เข้าใจตรงกันครับ
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

ลองตามนี้ครับ
ที่ชีท Voucher
- เซลล์ B2 คีย์สูตรเพื่อนับว่ามีจำนวนรายการเท่าใด
=COUNTA(Summary!A4:A10000)
Enter
- เซลล์ A3 คีย์สูตร
=INDEX({"A4","CD","CASE CD","DVD","PEN"},INT((ROWS(A$3:A3)-1)/Voucher!$B$2)+1)
Enter > Copy ลงไปด้านล่าง
- เซลล์ B3 คีย์สูตร
=INDEX(Summary!$A$4:$A$10000,MOD((ROWS(A$3:A3)-1),Voucher!$B$2)+1)
Enter > Copy ลงด้านล่าง
- ที่เซลล์ D3 ปรับช่วงในสูตรเพิ่มจากเดิมเป็น
=INDEX(Summary!$B$4:$B$10000,COUNTIF(A$3:A3,A3))
Enter > Copy ลงด้านล่าง
- เซลล์ 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 ลงด้านล่าง
- เซลล์ 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
ตรงเป๊ะเลียครับ

ขอบคุณมากครับอาจารย์ สำหรับความช่วยเหลือ,ความกรุณาของอาจารย์ และ ชื่นชมอาจารย์

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

ผมขออภัยที่จะไม่ดูไฟล์แนบครับ เนื่องจากผมคิดว่าผมน่าจะเดาได้จากไฟล์ที่แนบมาก่อนหน้านี้ หรือหากว่าผมเดาผิดช่วยแจ้งเข้ามาอีกรอบครับ
การหา 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

ไม่ค่อยรู้จักก็ยังไม่ควรใช้หรือใช้เท่าที่คิดว่าเข้าใจ ปรับปรุงเองได้ครับ และหากจะช้าก็ต้องยอมรับความช้านั้นครับ
Re: Stationery Record and Monitoring for charge
Posted: Sat Dec 29, 2012 3:39 pm
by yukioh
ขอบคุณมากครับอาจารย์