:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser

Stationery Record and Monitoring for charge

ฟอรัมถาม-ตอบปัญหาการใช้งานสูตรและฟังก์ชัน Excel
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
yukioh
Member
Member
Posts: 75
Joined: Sat Aug 21, 2010 5:52 pm

Stationery Record and Monitoring for charge

#1

Post by yukioh »

สะหวัดดีครับ อาจารย์,
ก่อนอืนผมต้องออกตัวก่อนว้า ภาษาไทย ไม้ค้อยเก่งเท้าไห่ลครับ, ผมมีปัญหา มารบกวนอาจารย์ช้วยด้วยอีกแล้วครับ

1. ผมต้องกานจะสะหลุบ Doc./Dept พายใน sheet Pen, DVD, CD, A4 และ อื่นฯ ว่าแต่ละพะแนก เบีกใช้อุปกรณ์เครื่องเขียนในตะละเดือนนั้นเท้าไหล
โดยที่เมื้อเราเลือก เดือนตรงที่ Summry แล้ว ให้สหลุบตามเดือนที่เราเลือกครับอาจารย์

รบกวนอาจารย์ด้วยนะครับ :D
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31255
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: Stationery Record and Monitoring for charge

#2

Post by snasui »

:D ลองตามนี้ครับ

ที่ D38 คีย์สูตร

=SUMPRODUCT(--(MONTH(1&$B$35)=MONTH($B$7:$B$33)),--($C$7:$C$33=$B38),$K$7:$K$33)

Enter > Copy ลงด้านล่าง

กรณีไม่ได้คำตอบ ช่วยอธิบายมาอย่างละเอียดว่ามีเงื่อนไขอะไรบ้าง ยกตัวอย่างข้อมูลและตัวอย่างคำตอบที่ต้องการมาด้วยเพื่อจะได้เข้าใจตรงกันครับ
yukioh
Member
Member
Posts: 75
Joined: Sat Aug 21, 2010 5:52 pm

Re: Stationery Record and Monitoring for charge

#3

Post by yukioh »

ครับ อาจารย์,
ผมได้ใส่สูดลงไปตามที่อาจารย์มให้แล้วครับ, มันไม้สะแดงค้าใดฯออกมาเลียครับ,
สมมุดว้า ถ้าผมเลือก:
เดือน 9(Sep) จะได้: และ เดือน 10(Oct) จะได้:

AD N05 120,667.00 N N01 40,000.00
F N07 667.00 O N10 40,000.00
C N04 38,019.00 P N12 40,000.00
O N10 61,312.00 PF N071 80,000.00
CC S22 200.00 AD N05 120,000.00
N N01 80,200.00
P N12 60,000.00
PF N071 100,000.00
H N08 20,000.00
AU N14 20,000.00
HLT S23 4,000.00
I N09 8,000.00
yukioh
Member
Member
Posts: 75
Joined: Sat Aug 21, 2010 5:52 pm

Re: Stationery Record and Monitoring for charge

#4

Post by yukioh »

ขอโทษ ครับ ผมลืมแนบไฟล
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31255
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: Stationery Record and Monitoring for charge

#5

Post by snasui »

:D เซลล์ J47 มีค่าเท่ากับ 120,667.00 ประกอบด้วยเซลล์ใดบ้างครับ :?:
yukioh
Member
Member
Posts: 75
Joined: Sat Aug 21, 2010 5:52 pm

Re: Stationery Record and Monitoring for charge

#6

Post by yukioh »

ขอโทดครับ สงใสผมใส่ formula ผิดครับ

Cell J47 มีค่าเท่ากับ 667 ครับ พะแนก AD เดือน 9. (ประกอบด้วยเซลล์ K9 อย่างเดีวยครับ)
Cell J50 มีค่าเท่ากับ 21,312 ครับ พะแนก O เดือน 9. (ประกอบด้วยเซลล์ K13,K14 และ K19)
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31255
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: Stationery Record and Monitoring for charge

#7

Post by snasui »

:shock:
yukioh wrote:Cell J47 มีค่าเท่ากับ 667 ครับ พะแนก AD เดือน 9. (ประกอบด้วยเซลล์ K9 อย่างเดีวยครับ)
เซลล์ J47 จะได้ผลลัพธ์เป็น 667 ไปไม่ได้ครับ เพราะว่า B9 ไม่ใช่เดือน 9
yukioh
Member
Member
Posts: 75
Joined: Sat Aug 21, 2010 5:52 pm

Re: Stationery Record and Monitoring for charge

#8

Post by yukioh »

ขอบคุณมากครับอาจารย์ ที่แนะนำ, ผมทำแก้ได้แล้วครับ.. :)
ผมบออนุญาต ถามต่ออีกนะครับ
หลังจากที่ได้ Summary ในแต่ละ item แล้ว, ผมต้องกานที่จะเอามารวมกันทังหมดเลียใน "Summary" sheet ครับ โดยกานกดปุม ."Get Data Summary"

รบกวนบอาจารย์ ด้วยครับ..
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31255
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: Stationery Record and Monitoring for charge

#9

Post by snasui »

:D ไม่เข้าใจครับ ไม่ทราบว่าต้องการจะทำอะไร ในการนำไฟล์มาถามไม่ควรซ่อนชีท ซ่อน Scroll Bar เพราะจะทำให้เกิดความยุ่งยากที่จะต้องเข้าไปกำหนดเองใหม่

ชีท Summary นั้นมีสูตรสำหรับดึงข้อมูลอยู่แล้วไม่ทราบว่าต้องการผลลัพธ์เป็นอย่างไร ที่บันทึก Macro มานั้นไม่ถูกต้องตรงไหน :?: ช่วยระบุรายละเอียดมาด้วยครับ
yukioh
Member
Member
Posts: 75
Joined: Sat Aug 21, 2010 5:52 pm

Re: Stationery Record and Monitoring for charge

#10

Post by yukioh »

ขออภัยครับ อาจารย์,
เนื่องจากว้า ในแต่ละเดือนนั้นจะมีกานบันทิกข้อมูน และ จะเป็นต้อง insert row ในในแต่ละ Item เช้น Pen, DVD etc.. เพื่อเพี่มตะลางในกานบันทิก
ชื้ง Macro "Get Data Summary" มันข้อนค้างจะ Fix Cell , และ ผมต้องกานที่จะนำ Summary ในแต่ละรายกานของ Pen, DVD etc..มารวมกันใน sheet เดียว
ถ้าเกีดผม insert row เพี้มใน แต้ละรายกานแล้ว Macro "Get Data Summary" ก็อาดจะนำข้อมูนมาผีดพลาด, ชิ้งผมต้องกาน:
- นำ Summary ในแต่ละรายกาน (Pen,CD,DVD..)มารวมกัน ใน sheet "Summary",โดยที่ เวลา insert row ในในแต่ละ Item จะไม้มีผนกับ Macro
- Remove ตัวที่ช้ำกัน ออก เช้น พะแนก Ad ในแต่ละ item (Pen,CD,DVD..) ออก เพื้อให้ สะแดงใน sheet "Summary" เพียงอันเดียว

รบกวนบอาจารย์ ด้วยครับ..
User avatar
snasui
Site Admin
Site Admin
Posts: 31255
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: Stationery Record and Monitoring for charge

#11

Post by snasui »

:D ลองดูตัวอย่างการปรับ Code ตามด้านล่างครับ

Code: Select all

Sub Macro1()
'
' Macro1 Macro
'

'
    Sheets("Summary").Select
    Range("a4:a65530").ClearContents
    Sheets("PEN").Select
    Range("B38").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Sheets("Summary").Select
    Range("a" & Rows.Count).End(xlUp).Offset(1, 0).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
'    Range("A3").Select
'    Selection.End(xlDown).Select
'    Range("A24").Select
'    Selection.End(xlUp).Select
'    Selection.End(xlDown).Select
'    Range("A18").Select
'    Selection.End(xlUp).Select
'    Selection.End(xlDown).Select
'    Application.CutCopyMode = False
    Sheets("DVD").Select
    Range("B28").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Sheets("Summary").Select
    Range("a" & Rows.Count).End(xlUp).Offset(1, 0).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
'    Range("A26").Select
'    Selection.End(xlDown).Select
    Sheets("CD").Select
    Range("B28").Select
    Range(Selection, Selection.End(xlDown)).Select
'    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Summary").Select
    Range("a" & Rows.Count).End(xlUp).Offset(1, 0).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
'    Selection.End(xlDown).Select
'    Range("A68").Select
    Sheets("A4").Select
    Range("B28").Select
    'Range(Selection, Selection.End(xlToRight)).Select
    'Range(Selection, Selection.End(xlToLeft)).Select
    Range(Selection, Selection.End(xlDown)).Select
'    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Summary").Select
    Range("a" & Rows.Count).End(xlUp).Offset(1, 0).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
'    Selection.End(xlDown).Select
'    Selection.End(xlUp).Select
    Range("A4").Select
    Range(Selection, Selection.End(xlDown)).Select
'    Application.CutCopyMode = False
    ActiveSheet.Range("$A$3:$A$89").RemoveDuplicates Columns:=1, Header:=xlYes
'    ActiveWindow.SmallScroll Down:=0
    Range("A5").Select
End Sub
yukioh
Member
Member
Posts: 75
Joined: Sat Aug 21, 2010 5:52 pm

Re: Stationery Record and Monitoring for charge

#12

Post by yukioh »

สวัสดีครับ อาจารย์,
ผมได้ลองใส่ ตามที่อาจานให้มาแล้วครับ, และ ผมได้ลอง Insert row ที่ Sheet "Pen,DVD,CD,A4"ลองดูแล้ว ปลากดว่า ม้นจะรวมข้อมูนที่ผิด และ ไม้ครบตามที่ต้องกานครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31255
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: Stationery Record and Monitoring for charge

#13

Post by snasui »

:D ลองดูตัวอย่างการปรับ Code เป็นตามด้านล่างครับ

Code: Select all

Sub Macro1()
    Range("a4:a65530").ClearContents
    Sheets("PEN").Select
    Range("B" & Application.Match("Summary", Sheets("PEN").Range("B:B"), 0)).Offset(2, 0).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Sheets("Summary").Select
    Range("a" & Rows.Count).End(xlUp).Offset(1, 0).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("DVD").Select
    Range("B" & Application.Match("Summary", Sheets("DVD").Range("B:B"), 0)).Offset(2, 0).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Sheets("Summary").Select
    Range("a" & Rows.Count).End(xlUp).Offset(1, 0).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("CD").Select
    Range("B" & Application.Match("Summary", Sheets("CD").Range("B:B"), 0)).Offset(2, 0).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Sheets("Summary").Select
    Range("a" & Rows.Count).End(xlUp).Offset(1, 0).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("A4").Select
    Range("B" & Application.Match("Summary", Sheets("A4").Range("B:B"), 0)).Offset(2, 0).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Sheets("Summary").Select
    Range("a" & Rows.Count).End(xlUp).Offset(1, 0).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("A4").Select
    Range(Selection, Selection.End(xlDown)).Select
    ActiveSheet.Range("$A$3:$A$89").RemoveDuplicates Columns:=1, Header:=xlYes
    Range("A5").Select
End Sub
yukioh
Member
Member
Posts: 75
Joined: Sat Aug 21, 2010 5:52 pm

Re: Stationery Record and Monitoring for charge

#14

Post by yukioh »

อาจารย์,
พอจะมีวีทีที้ส้นกว่านี้ไหมครับ?
User avatar
snasui
Site Admin
Site Admin
Posts: 31255
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: Stationery Record and Monitoring for charge

#15

Post by snasui »

:D มีแน่นอนครับ ไม่ต้องรีบร้อนในการปรับ Code ครับ ขอให้ศึกษาการทำงานของ Code ให้เข้าใจก่อน จากนั้นลองศึกษา Looping หากเข้าใจแล้วจะสามารถปรับ Code ให้สั้นลงได้เอง หรือหากปรับแล้วติดปัญหาก็ถามมาได้เสมอครับ
yukioh
Member
Member
Posts: 75
Joined: Sat Aug 21, 2010 5:52 pm

Re: Stationery Record and Monitoring for charge

#16

Post by yukioh »

สวัสดีครับ อาจารย์
ผมได้ใส่ Code "1) Get All Data" เข้าไปครับ และ ได้เสีม code :

" Range("B" & Application.Match("Summary", Sheets("PEN").Range("B:B"), 0)).Offset(2, 0) "

ที่อาจารย์ ให้มาก่อนหน้านี้ รู้สิกว่า data มาไม้หมด

รบกวนบอาจารย์ ช้วยดูให้ด้วยครับ.. :D
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31255
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: Stationery Record and Monitoring for charge

#17

Post by snasui »

:D ลองปรับเป็นด้านล่างครับ

Code: Select all

Sub Macro1()
   '...Other code
    Range(Selection, Selection.End(xlDown)).Select
    Selection.RemoveDuplicates Columns:=1, Header:=xlNo
    Range("A5").Select
End Sub
Code ด้านบนคือ 3 บรรทัดสุดท้าย ส่วน '...Other code คือ Code เดิมครับ
yukioh
Member
Member
Posts: 75
Joined: Sat Aug 21, 2010 5:52 pm

Re: Stationery Record and Monitoring for charge

#18

Post by yukioh »

ครับ อาจารย์
รบกวน อาจารย์ ดู Module 3 ให้ด้วยครับ ที่เป็นปุ่ม "1) Get All Data" ผมได้ใส่เข้าไปครับ

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
    Sheets("Summary").Range("A4:A" & Rows.Count).Clear
    rSource = Array(Sheets("PEN").Range("B" & Application.Match("Summary", Sheets("PEN").Range("B:B"), 0)).Offset(2, 0), _
                            Sheets("DVD").Range("B" & Application.Match("Summary", Sheets("DVD").Range("B:B"), 0)).Offset(2, 0))
     
     
    For i = 0 To UBound(rSource)
        Set rTarget = Sheets("Summary").Range("A" & Rows.Count).End(xlUp).Offset(1, 0)
        rSource(i).Copy rTarget
    Next i
End Sub
User avatar
snasui
Site Admin
Site Admin
Posts: 31255
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: Stationery Record and Monitoring for charge

#19

Post 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)). _
            RemoveDuplicates Columns:=1, Header:=xlNo
    End With
End Sub
yukioh
Member
Member
Posts: 75
Joined: Sat Aug 21, 2010 5:52 pm

Re: Stationery Record and Monitoring for charge

#20

Post by yukioh »

ขอบคุณมากครับอาจารย์ ใช้ได้ตามที่ต้องกานเลียครับ.
อาจารย์ ครับ ผมขอถามตอ,
-ถ้าเกีดว้า มี item อืน นอกจาก Pen, DVD, CD, A4 แล้ว ต้องได้เตีมใส่:

Code: Select all


rSource = Array("PEN", "DVD", "CD", "A4", .....,......)

ใช้ไหมครับ ?

-และ ทำไม 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")))))

มันไม่สะแดงผนครับอาจาน?
Post Reply