Page 1 of 2
การแทรกบรรทัดแบบมีเงื่อนไขในข้อมูลแต่ละชุด.
Posted: Tue Dec 01, 2015 8:35 pm
by janesit
มีข้อมูล 1 ชุด ต้องการแทรกแถวเพิ่มอีก X-1 บรรทัด จากจำนวนที่มี จำนวน ชิ้น ของยอดรวมทั้งหมด จำนวนเต็ม ชิ้น
EX
PO INVOICE สาขา จำนวน รายละเอียด จำนวนเต็ม
PO32688 VV0161030 CHAชะอำ 6 บานซิงค์PLATINUMโนวา-คู่ โอ๊คดำ 54
PO32688 VV0161030 HAYหาดใหญ่ 12 บานซิงค์PLATINUMโนวา-คู่ โอ๊คดำ 54
18
หลังการระบุลำดับ จำนวนบรรทัดที่ต้องมีทั้งหมด รวมเป็น 18 บรรทัด
วิธีที่คิดได้ตอนนี้ คือ SORT A-Z โดยยึดจำนวน เป็นหลัก แล้วเติมเลขจำนวน 1-12 เพื่อรันลำดับ.....มีวิธีที่ดีกว่านี้ไหมคะ
PO INVOICE สาขา จำนวน รายละเอียด จำนวนเต็ม ลำดับที่
PO32688 VV0161030 CHAชะอำ 6 บานซิงค์PLATINUMโนวา-คู่ โอ๊คดำ 54 1
PO32688 VV0161030 HAYหาดใหญ่ 12 บานซิงค์PLATINUMโนวา-คู่ โอ๊คดำ 54 1
PO32688 VV0161030 CHAชะอำ 6 บานซิงค์PLATINUMโนวา-คู่ โอ๊คดำ 54 2
PO32688 VV0161030 HAYหาดใหญ่ 12 บานซิงค์PLATINUMโนวา-คู่ โอ๊คดำ 54 2
PO32688 VV0161030 CHAชะอำ 6 บานซิงค์PLATINUMโนวา-คู่ โอ๊คดำ 54 3
PO32688 VV0161030 HAYหาดใหญ่ 12 บานซิงค์PLATINUMโนวา-คู่ โอ๊คดำ 54 3
RUN ต่อ
4
5
6
7
8
9
10
11
12
ขอบคุณค่ะ
Re: การแทรกบรรทัดแบบมีเงื่อนไขในข้อมูลแต่ละชุด.
Posted: Tue Dec 01, 2015 8:43 pm
by bank9597

แสดงตัวอย่างคำตอบที่ต้องการมาในไฟล์หน่อยครับ ยังไม่ค่อยเข้าใจ
Re: การแทรกบรรทัดแบบมีเงื่อนไขในข้อมูลแต่ละชุด.
Posted: Tue Dec 01, 2015 8:50 pm
by snasui

ลองทำลูกศรโยงข้อมูลจากด้านบนมาด้านล่างให้ดูว่าเป็นการนำข้อมูลจากด้านบนมาวางอย่างไร ดูแล้วไม่สามารถจับความสัมพันธ์ได้ครับ
Re: การแทรกบรรทัดแบบมีเงื่อนไขในข้อมูลแต่ละชุด.
Posted: Wed Dec 09, 2015 12:02 pm
by janesit
สวัสดีค่ะ
แนบไฟล์อธิบายเพิ่มเติมมาแล้วนะคะ
ขอบคุณค่ะ
Re: การแทรกบรรทัดแบบมีเงื่อนไขในข้อมูลแต่ละชุด.
Posted: Wed Dec 09, 2015 2:10 pm
by logic
เท่าที่ดูผลลัพธ์ สรุปได้ว่าการเพิ่มบรรทัดหลังที่เรียงตามจำนวนแล้วมี 4 รอบ
1. เริ่มจากบรรทัดแรก 1 ชุด (ุ6 รายการ)
2. เริ่มจากบรรทัดที่สอง 1 ชุด (5 รายการ)
3. เริ่มจากบรรทัดที่สาม 4 ชุด (16 รายการ)
4. เริ่มจากบรรทัดที่สี่ 6 ชุด (18 รายการ)
รวม 12 ชุด 45 รายการ
มีหลักคิดอย่างไรให้ออกมา 12 ชุด อ้อ...อีกอย่าง รายการทั้งหลายก่อนที่จะเพิ่มบรรทัดมันเพิ่มลดได้หรือว่าคงที่ครับ
Re: การแทรกบรรทัดแบบมีเงื่อนไขในข้อมูลแต่ละชุด.
Posted: Wed Dec 09, 2015 6:43 pm
by janesit
logic wrote:เท่าที่ดูผลลัพธ์ สรุปได้ว่าการเพิ่มบรรทัดหลังที่เรียงตามจำนวนแล้วมี 4 รอบ
1. เริ่มจากบรรทัดแรก 1 ชุด (ุ6 รายการ)
2. เริ่มจากบรรทัดที่สอง 1 ชุด (5 รายการ)
3. เริ่มจากบรรทัดที่สาม 4 ชุด (16 รายการ)
4. เริ่มจากบรรทัดที่สี่ 6 ชุด (18 รายการ)
รวม 12 ชุด 45 รายการ
มีหลักคิดอย่างไรให้ออกมา 12 ชุด อ้อ...อีกอย่าง รายการทั้งหลายก่อนที่จะเพิ่มบรรทัดมันเพิ่มลดได้หรือว่าคงที่ครับ
คิดว่ายังไม่เข้าใจโจทย์ที่อธิบายไปน่่ะค่ะ
ยากจังที่จะอธิบายแบบนี้ค่ะ คือ.... การเพิ่มจำนวนชุดข้อมูลในแต่ละชุดไม่คงที่แล้วแต่ทางผู้สั่งค่ะ
PO INVOICE สาขา จำนวน
PO32688 VV1030 CHAชะอำ 6 (ชุดข้อมูลนี้แล้วแต่ลค.ระบุ)
PO32688 VV1030 HAYหาดใหญ่ 12 (ชุดข้อมูลนี้แล้วแต่ลค.ระบุ)
PO36722 VW276 BBTบางบัวทอง 2 (ชุดข้อมูลนี้แล้วแต่ลค.ระบุ)
PO36722 VW276 RAYระยอง 1 (ชุดข้อมูลนี้แล้วแต่ลค.ระบุ)
21 ผลรวมของทั้งชุดที่ ลค.สั่ง
จเดี่ยวกลับมาอธิบายต่อนะคะ
Re: การแทรกบรรทัดแบบมีเงื่อนไขในข้อมูลแต่ละชุด.
Posted: Wed Dec 09, 2015 7:28 pm
by janesit
janesit wrote:logic wrote:เท่าที่ดูผลลัพธ์ สรุปได้ว่าการเพิ่มบรรทัดหลังที่เรียงตามจำนวนแล้วมี 4 รอบ
1. เริ่มจากบรรทัดแรก 1 ชุด (ุ6 รายการ)
2. เริ่มจากบรรทัดที่สอง 1 ชุด (5 รายการ)
3. เริ่มจากบรรทัดที่สาม 4 ชุด (16 รายการ)
4. เริ่มจากบรรทัดที่สี่ 6 ชุด (18 รายการ)
รวม 12 ชุด 45 รายการ
มีหลักคิดอย่างไรให้ออกมา 12 ชุด อ้อ...อีกอย่าง รายการทั้งหลายก่อนที่จะเพิ่มบรรทัดมันเพิ่มลดได้หรือว่าคงที่ครับ
คิดว่ายังไม่เข้าใจโจทย์ที่อธิบายไปน่่ะค่ะ
ยากจังที่จะอธิบายแบบนี้ค่ะ คือ.... การเพิ่มจำนวนชุดข้อมูลในแต่ละชุดไม่คงที่แล้วแต่ทางผู้สั่งค่ะ
PO INVOICE สาขา จำนวน
PO32688 VV1030 CHAชะอำ 6 (ชุดข้อมูลนี้แล้วแต่ลค.ระบุ)
PO32688 VV1030 HAYหาดใหญ่ 12 (ชุดข้อมูลนี้แล้วแต่ลค.ระบุ)
PO36722 VW276 BBTบางบัวทอง 2 (ชุดข้อมูลนี้แล้วแต่ลค.ระบุ)
PO36722 VW276 RAYระยอง 1 (ชุดข้อมูลนี้แล้วแต่ลค.ระบุ)
21 ผลรวมของทั้งชุดที่ ลค.สั่ง
จเดี่ยวกลับมาอธิบายต่อนะคะ
สวัสดีค่ะ
เพิ่มขั้นตอนการทำงานแต่ละขั้นมาให้ดูนะคะ ไม่ทราบจะพอเข้าใจกันหรือเปล่า
มีทั้งหมด 6 ชีตลำดับขั้นตอนการทำงาน หวังว่าจะมีใครเข้าใจบ้างนะคะ
ขอบคุณค่ะ
Re: การแทรกบรรทัดแบบมีเงื่อนไขในข้อมูลแต่ละชุด.
Posted: Wed Dec 09, 2015 8:41 pm
by snasui

ไม่พบไฟล์แนบครับ
ไฟล์แนบต้องมีขนาดไม่เกิน 300kb ครับ
Re: การแทรกบรรทัดแบบมีเงื่อนไขในข้อมูลแต่ละชุด.
Posted: Fri Dec 11, 2015 12:05 pm
by XDoll
ไม่แน่ใจว่าผมเข้าใจถูกไหมนะครับ ลองดูตามนี้
ที่ ชีท"ต้นฉบับ"
N1 =SUM($M$2:$M$180)
N2 =IF(ROWS($N$2:N2)>MAX($G$2:$G$180),"",ROWS($N$2:N2)) คัดลอกลงล่างครับ
M2 =IF($N2="","",COUNTIF($G$2:$G$180,">="&N2)) คัดลอกลงล่างครับ
O2 =IFERROR(SUM($M$1:M2)-(M2-1),"") คัดลอกลงล่างครับ
ที่ ชีท"ผลลัพธ์ที่ต้องการ"
G2 =IF(ROWS($G$2:G2)>ต้นฉบับ!$N$1,"",LOOKUP(ROWS($G$2:G2),ต้นฉบับ!$O$2:$O$93,ต้นฉบับ!$N$2:$N$93)) คัดลอกลงล่างครับ
A2 =INDEX(ต้นฉบับ!D$2:D$180,SMALL(IF(ต้นฉบับ!$G$2:$G$180>=$G2,ROW($G$2:$G$180)-1),MOD(COUNTIF($G$2:$G2,">="&$G2),COUNTIF(ต้นฉบับ!$G$2:$G$180,">="&$G2)+1))) กด Clrt+Shift+Enter คัดลอกไปด้านขวา และ ลงล่างครับ
Re: การแทรกบรรทัดแบบมีเงื่อนไขในข้อมูลแต่ละชุด.
Posted: Sat Dec 12, 2015 9:11 am
by janesit
XDoll wrote:ไม่แน่ใจว่าผมเข้าใจถูกไหมนะครับ ลองดูตามนี้
ที่ ชีท"ต้นฉบับ"
N1 =SUM($M$2:$M$180)
N2 =IF(ROWS($N$2:N2)>MAX($G$2:$G$180),"",ROWS($N$2:N2)) คัดลอกลงล่างครับ
M2 =IF($N2="","",COUNTIF($G$2:$G$180,">="&N2)) คัดลอกลงล่างครับ
O2 =IFERROR(SUM($M$1:M2)-(M2-1),"") คัดลอกลงล่างครับ
ที่ ชีท"ผลลัพธ์ที่ต้องการ"
G2 =IF(ROWS($G$2:G2)>ต้นฉบับ!$N$1,"",LOOKUP(ROWS($G$2:G2),ต้นฉบับ!$O$2:$O$93,ต้นฉบับ!$N$2:$N$93)) คัดลอกลงล่างครับ
A2 =INDEX(ต้นฉบับ!D$2:D$180,SMALL(IF(ต้นฉบับ!$G$2:$G$180>=$G2,ROW($G$2:$G$180)-1),MOD(COUNTIF($G$2:$G2,">="&$G2),COUNTIF(ต้นฉบับ!$G$2:$G$180,">="&$G2)+1))) กด Clrt+Shift+Enter คัดลอกไปด้านขวา และ ลงล่างครับ
ขอบคุณนะคะ กำลังทดลองดูค่ะ
Re: การแทรกบรรทัดแบบมีเงื่อนไขในข้อมูลแต่ละชุด.
Posted: Sat Dec 12, 2015 9:13 am
by janesit
snasui wrote:
ไม่พบไฟล์แนบครับ
ไฟล์แนบต้องมีขนาดไม่เกิน 300kb ครับ
ไฟลใหญ่เกินไปจริง ค่ะ ZIP FILE แล้วยังไม่ได้เลยค่ะ
Re: การแทรกบรรทัดแบบมีเงื่อนไขในข้อมูลแต่ละชุด.
Posted: Sat Dec 12, 2015 9:23 am
by snasui

ไม่จำเป็นต้องแนบไฟล์จริงครับ
ทำมาเป็นตัวอย่างขอสังเขป ระบุเงื่อนไขพร้อมยกตัวอย่างคำตอบที่ต้องการมาให้เห็นว่าแต่ละเงื่อนไขต้องได้ผลลัพธ์เป็นอย่างไร เท่านี้ก็เพียงพอแล้วครับ
Re: การแทรกบรรทัดแบบมีเงื่อนไขในข้อมูลแต่ละชุด.
Posted: Sat Dec 12, 2015 9:34 am
by janesit
snasui wrote:
ไม่จำเป็นต้องแนบไฟล์จริงครับ
ทำมาเป็นตัวอย่างขอสังเขป ระบุเงื่อนไขพร้อมยกตัวอย่างคำตอบที่ต้องการมาให้เห็นว่าแต่ละเงื่อนไขต้องได้ผลลัพธ์เป็นอย่างไร เท่านี้ก็เพียงพอแล้วครับ
ตอนนี้มีคนแนะนำมาแล้วค่ะอาจารย์ กำลังลองดู น่าจะใช่อย่างที่ต้องการค่ะ
ขอบคุณค่ะ
Re: การแทรกบรรทัดแบบมีเงื่อนไขในข้อมูลแต่ละชุด.
Posted: Sat Dec 12, 2015 1:43 pm
by janesit
janesit wrote:XDoll wrote:ไม่แน่ใจว่าผมเข้าใจถูกไหมนะครับ ลองดูตามนี้
ที่ ชีท"ต้นฉบับ"
N1 =SUM($M$2:$M$180)
N2 =IF(ROWS($N$2:N2)>MAX($G$2:$G$180),"",ROWS($N$2:N2)) คัดลอกลงล่างครับ
M2 =IF($N2="","",COUNTIF($G$2:$G$180,">="&N2)) คัดลอกลงล่างครับ
O2 =IFERROR(SUM($M$1:M2)-(M2-1),"") คัดลอกลงล่างครับ
ที่ ชีท"ผลลัพธ์ที่ต้องการ"
G2 =IF(ROWS($G$2:G2)>ต้นฉบับ!$N$1,"",LOOKUP(ROWS($G$2:G2),ต้นฉบับ!$O$2:$O$93,ต้นฉบับ!$N$2:$N$93)) คัดลอกลงล่างครับ
A2 =INDEX(ต้นฉบับ!D$2:D$180,SMALL(IF(ต้นฉบับ!$G$2:$G$180>=$G2,ROW($G$2:$G$180)-1),MOD(COUNTIF($G$2:$G2,">="&$G2),COUNTIF(ต้นฉบับ!$G$2:$G$180,">="&$G2)+1))) กด Clrt+Shift+Enter คัดลอกไปด้านขวา และ ลงล่างครับ
ขอบคุณนะคะ กำลังทดลองดูค่ะ
ได้แล้วนะคะ ขอบคุณค่ะ สมบูรณ์มาก ๆ

Re: การแทรกบรรทัดแบบมีเงื่อนไขในข้อมูลแต่ละชุด.
Posted: Sat Dec 12, 2015 4:25 pm
by janesit
ที่ ชีท"ต้นฉบับ"
N1 =SUM($M$2:$M$180) แก้ไข เป็น SUM(M2:M)
N2 =IF(ROWS($N$2:N2)>MAX($G$2:$G$180),"",ROWS($N$2:N2)) แก้ไขเป็น IF(ROWS($N$2:N2)>MAX(G:G),"",ROWS($N$2:N2))
M2 =IF($N2="","",COUNTIF($G$2:$G$180,">="&N2)) แก้ไขเป็น IF($N2="","",COUNTIF(G:G,">="&N2))
ใช้งานได้ ค่ะ ลองแก้ใน ชีท"ผลลัพธ์ที่ต้องการ" ทั้ง G2 และ A2 ต้องแก้ไข ยังไงให้สูตรวิ่งตามกัน โดยไม่ต้อง เปลี่ยนตัวเลข จาก 180 เป็น อื่น ๆ คะ
ขอบคุณค่ะ
Re: การแทรกบรรทัดแบบมีเงื่อนไขในข้อมูลแต่ละชุด.
Posted: Sat Dec 12, 2015 4:35 pm
by janesit
XDoll wrote:ไม่แน่ใจว่าผมเข้าใจถูกไหมนะครับ ลองดูตามนี้
ที่ ชีท"ต้นฉบับ"
N1 =SUM($M$2:$M$180)
N2 =IF(ROWS($N$2:N2)>MAX($G$2:$G$180),"",ROWS($N$2:N2)) คัดลอกลงล่างครับ
M2 =IF($N2="","",COUNTIF($G$2:$G$180,">="&N2)) คัดลอกลงล่างครับ
O2 =IFERROR(SUM($M$1:M2)-(M2-1),"") คัดลอกลงล่างครับ
ที่ ชีท"ผลลัพธ์ที่ต้องการ"
G2 =IF(ROWS($G$2:G2)>ต้นฉบับ!$N$1,"",LOOKUP(ROWS($G$2:G2),ต้นฉบับ!$O$2:$O$93,ต้นฉบับ!$N$2:$N$93)) คัดลอกลงล่างครับ
A2 =INDEX(ต้นฉบับ!D$2:D$180,SMALL(IF(ต้นฉบับ!$G$2:$G$180>=$G2,ROW($G$2:$G$180)-1),MOD(COUNTIF($G$2:$G2,">="&$G2),COUNTIF(ต้นฉบับ!$G$2:$G$180,">="&$G2)+1))) กด Clrt+Shift+Enter คัดลอกไปด้านขวา และ ลงล่างครับ
ที่ ชีท"ต้นฉบับ"
N1 =SUM($M$2:$M$180) แก้ไข เป็น SUM(M2:M)
N2 =IF(ROWS($N$2:N2)>MAX($G$2:$G$180),"",ROWS($N$2:N2)) แก้ไขเป็น IF(ROWS($N$2:N2)>MAX(G:G),"",ROWS($N$2:N2))
M2 =IF($N2="","",COUNTIF($G$2:$G$180,">="&N2)) แก้ไขเป็น IF($N2="","",COUNTIF(G:G,">="&N2))
ใช้งานได้ ค่ะ ลองแก้ใน ชีท"ผลลัพธ์ที่ต้องการ" ทั้ง G2 และ A2 ต้องแก้ไข ยังไงให้สูตรวิ่งตามกัน โดยไม่ต้อง เปลี่ยนตัวเลข จาก 180 เป็น อื่น ๆ คะ
ขอบคุณค่ะ
Re: การแทรกบรรทัดแบบมีเงื่อนไขในข้อมูลแต่ละชุด.
Posted: Sat Dec 12, 2015 4:39 pm
by snasui

แนบไฟล์ที่ได้ลองทำเองมาแล้วด้วยจะได้ช่วยดูได้ครับ
Re: การแทรกบรรทัดแบบมีเงื่อนไขในข้อมูลแต่ละชุด.
Posted: Sat Dec 12, 2015 5:19 pm
by janesit
snasui wrote:
แนบไฟล์ที่ได้ลองทำเองมาแล้วด้วยจะได้ช่วยดูได้ครับ
ตรง ชีต ผลลัพธ์ ไม่ได้แก้ค่ะ อาจารย์
ดูไม่ออกว่า N93 , O93 คืออะไร มีที่มา อย่างไร
แนบไฟล์มาแล้วค่ะ
ขอบคุณค่ะ
Re: การแทรกบรรทัดแบบมีเงื่อนไขในข้อมูลแต่ละชุด.
Posted: Sat Dec 12, 2015 5:33 pm
by snasui

แก้ง่าย ๆ โดยเพิ่มบรรทัดเข้าไปในช่วงข้อมูลเท่าที่คิดว่าข้อมูลจะขยายไปถึงครับ
เช่นเดิม G$2:$G$180 ก็แก้ใหม่เป็น G$2:$G$18000 เช่นนี้เป็นต้น
N93, O93 ที่สงสัยนั้นมันนำมาจากชีทต้นฉบับ เท่าที่ดูก็ครอบคลุมอยู่แล้ว หากจะปรับก็เปลี่ยนเลข 93 ให้เป็นเลขที่มากกว่านั้นเท่าที่คิดว่าข้อมูลจะขยายไปถึงครับ
ตัวอย่างสูตรในชีต ผลลัพธ์ฯ
เซลล์ A2 ปรับสูตรเป็น
=IF(ROWS(A$2:A2)>ต้นฉบับ!$N$1,"",INDEX(ต้นฉบับ!D$2:D$18000,SMALL(IF(ต้นฉบับ!$G$2:$G$18000>=$G2,ROW($G$2:$G$18000)-ROW($G$2)+1),COUNTIF($G$2:$G2,$G2))))
Ctrl+Shift+Enter > Copy ไปด้านขวาถึง F2 > Copy ลงด้านล่าง
Re: การแทรกบรรทัดแบบมีเงื่อนไขในข้อมูลแต่ละชุด.
Posted: Sat Dec 12, 2015 5:58 pm
by XDoll
snasui wrote:janesit wrote:snasui wrote:
แนบไฟล์ที่ได้ลองทำเองมาแล้วด้วยจะได้ช่วยดูได้ครับ
ตรง ชีต ผลลัพธ์ ไม่ได้แก้ค่ะ อาจารย์
ดูไม่ออกว่า N93 , O93 คืออะไร มีที่มา อย่างไร
แนบไฟล์มาแล้วค่ะ
ขอบคุณค่ะ

แก้ง่าย ๆ โดยเพิ่มบรรทัดเข้าไปในช่วงข้อมูลเท่าที่คิดว่าข้อมูลจะขยายไปถึงครับ
เช่นเดิม G$2:$G$180 ก็แก้ใหม่เป็น G$2:$G$18000 เช่นนี้เป็นต้น
N93, O93 ที่สงสัยนั้นมันนำมาจากชีทต้นฉบับ เท่าที่ดูก็ครอบคลุมอยู่แล้ว หากจะปรับก็เปลี่ยนเลข 93 ให้เป็นเลขที่มากกว่านั้นเท่าที่คิดว่าข้อมูลจะขยายไปถึงครับ
