Page 1 of 1

ลบเเล้วให้เหมือนเดิม

Posted: Tue Oct 25, 2016 11:36 pm
by navara1112
สวัสดีครับ
ไม่ทราบว่าจะทำได้ไหมครับ หากลบข้อมูล ซึ่งงานเสร็จจบเเล้วไม่ต้องการ เเต่เผอิญต้องมีเงื่อนไขวันที่ เวลา ของงานถัดลงมาเป็นตัวกำหนดการคิดเเทน
ตามเเนบไฟล์ครับ
ขอบคุณครับ

Re: ลบเเล้วให้เหมือนเดิม

Posted: Wed Oct 26, 2016 12:01 am
by DhitiBank
ผมคิดว่าหากยังใช้สูตรอยู่จะไม่สามารถทำแบบนั้นได้ครับ คงต้องใช้ VBA

หรืออาจใช้ conditional format แทนเพื่อไม่ให้มองเห็นวันเวลาในบางแถว เผื่อเป็นทางเลือกครับ (ตามรูป)
2016-10-25 23_53_16-Microsoft Excel - ลบเเล้วเหมือนเดิม condi.xlsx.png
จากรูป สีอักษรในคอลัมน์ N และ O จะเป็นสีขาวโดยขึ้นกับว่าในคอลัมน์ H มีเครื่องหมายถูกหรือไม่ วิธีทำคือ

1. ลากคลุม N4:O9 >> conditional formatting >> New rule...
2. เลือก use a formula to determine...
3. ช่องว่างที่ให้ใส่สูตรให้คีย์ =$H4<>""
4. กดปุ่ม Format >> เลือกสีอักษรเป็นสีขาว >> OK >> OK

จากนั้นลองใส่เครื่องหมายถูกในคอลัมน์ H (เลือกฟ้อนท์เป็น Wingdings 2 และพิมพ์เครื่องหมายถูกโดยกด Ship+p) สีอักษรวันเวลาในแถวนั้นๆ ก็จะเปลี่ยนเป็นสีขาวครับ

Re: ลบเเล้วให้เหมือนเดิม

Posted: Wed Oct 26, 2016 8:34 am
by navara1112
ผมลองใช้ดูยังงง คือผมจะลบเเถว เเละสามารถเเทรกใหม่ เเละกรอกข้อมูลใหม่ คือตัวเเปรคือวันเเละเวลาขึ้นอยู่กับงานมากน้อย เพราะฉะ
นั้นวันเเละเวลาต้องคิดบวกวันเวลาตรงเลย เเต่ไม่ทราบว่าเป็นไปได้ไหม
ขอบคุณครับ

Re: ลบเเล้วให้เหมือนเดิม

Posted: Wed Oct 26, 2016 11:24 am
by DhitiBank
อ๋อ เข้าใจแล้วครับ หากต้องการแบบนั้นคงต้องเอาสูตรที่ปกติแล้วต้องคีย์ในคอลัมน์ Q และ R มาใส่ในคอลัมน์ N และ O ในแถวถัดลงไปแทน และปรับการอ้างอิงใหม่โดยเอา Indirect มาช่วย ส่วนคอลัมน์ P ก็ไม่จำเป็นแล้วเพราะสามารถเอามารวมในสูตรได้เลยครับ

N5
=WORKDAY(INDIRECT("N"&ROW()-1),INT((INDIRECT("O"&ROW()-1)-$J$2-(INDIRECT("O"&ROW()-1)>1/2)/24+(INDIRECT("J"&ROW()-1)*INDIRECT("K"&ROW()-1))*(INDIRECT("I"&ROW()-1)*1.25))/$J$2),(holiday))
Enter >> คัดลอกลงล่าง (คัดลอกให้ลงไปต่ำกว่าข้อมูลที่มี 1 แถว)

O5
=$J$2+MOD(INDIRECT("O"&ROW()-1)-J$2-(INDIRECT("O"&ROW()-1)>1/2)/24+MOD((INDIRECT("J"&ROW()-1)*INDIRECT("K"&ROW()-1))*(INDIRECT("I"&ROW()-1)*1.25),J$2),J$2)+(MOD(INDIRECT("O"&ROW()-1)-J$2-(INDIRECT("O"&ROW()-1)>1/2)/24+MOD((INDIRECT("J"&ROW()-1)*INDIRECT("K"&ROW()-1))*(INDIRECT("I"&ROW()-1)*1.25),J$2),J$2)>4/24)/24
Enter >> คัดลอกลงล่าง (คัดลอกให้ลงไปต่ำกว่าข้อมูลที่มี 1 แถว)

P4
=INDIRECT("N"&ROW()+1)
Enter >> คัดลอกลงล่าง

Q4
=INDIRECT("O"&ROW()+1)
Enter >> คัดลอกลงล่าง

แล้วลองลบแถวหรือเพิ่มแถวดูครับ ที่สำคัญคือพอลบหรือเพิ่มแล้ว ข้อมูลแถวแรกในคอลัมน์ N และ O ให้คีย์วัน เวลาด้วยมือ และสูตรในสองคอลัมน์นี้ให้มีเผื่อลงมาจากข้อมูลที่มี 1 แถวครับ

หมายเหตุ: สำหรับ Indirect มีเยอะๆ อาจทำให้คำนวณช้าครับ เพราะฉะนั้นคัดลอกสูตรเผื่อไว้เท่าที่จำเป็นครับ

:?: เอ... ตอนแรกนึกว่าย้ายสูตรมาที่คอลัมน์ N และ O จะสามารถลบ/แทรกได้เลยโดยไม่ต้องพึ่ง Indirect แต่พอไม่มี Indirect กลับทำให้เกิด #REF ตอนลบแถว ตาลายจริงและงงจัง :?

Re: ลบเเล้วให้เหมือนเดิม

Posted: Thu Oct 27, 2016 6:59 am
by navara1112
ขอบพระคุณมากครับท่าน

Re: ลบเเล้วให้เหมือนเดิม

Posted: Mon Oct 31, 2016 1:49 pm
by navara1112
ขอปรับ
ืN-Q =ลบเเล้วอยากปรับบวกวันหยุดเลยอัตโนมัติไปด้วย เช่นมีวันหยุดมากกว่า 1วันขึ้นไปให้บวกเองเลยจากเงื่อนไขปฏิทิน
ขอบคุณครับ

Re: ลบเเล้วให้เหมือนเดิม

Posted: Mon Oct 31, 2016 7:46 pm
by snasui
:D แนบไฟล์ตัวอย่างล่าสุดมาด้วยพร้อมชี้ให้เห็นว่าต้องการให้เซลล์ใด มีค่าเท่าใด เนื่องจากเงื่อนไขใด จะได้สะดวกในการตอบของเพื่อนสมาชิกครับ

Re: ลบเเล้วให้เหมือนเดิม

Posted: Mon Oct 31, 2016 9:39 pm
by navara1112
ตามเเนบครับ

Re: ลบเเล้วให้เหมือนเดิม

Posted: Tue Nov 01, 2016 9:41 am
by navara1112
สวัสดีครับ
คำตอบตัวอย่าง ตามเเนบครับ

Re: ลบเเล้วให้เหมือนเดิม

Posted: Tue Nov 01, 2016 11:05 am
by DhitiBank
ลองปรับสูตรแบบนี้ครับ

N5
=WORKDAY(N4,INT((O4-$R$2+P4)/$R$2),holiday)

O5
=$R$2+MOD(O4-IF(O4>12/24,1/24)-$R$2+P4,8/24)+IF(MOD(O4-IF(O4>12/24,1/24)-$R$2+P4,8/24)>4/24,1/24)

Re: ลบเเล้วให้เหมือนเดิม

Posted: Tue Nov 01, 2016 11:26 am
by navara1112
ขอบพระคุณเป็นอันมากๆ ขอบคุณครับ