Page 1 of 1
การกลับค่าจากแนวตั้งเป็นแนวนอน(TranSpose)
Posted: Wed Feb 16, 2011 11:31 am
by c_parenya
อาจารย์ครับ พอดีผมเคยเห็นสูตรในการกลับค่าจากแนวตั้งเป็นแนวนอน(TranSpose) แต่ผมลองทำดูแล้วมันไม่ขึ้นค่าให้ จะใช้วิธี Copy และมาว่างแบบ TranSposeก็ไม่ได้ ผมเลยไปแก้ตรง Excel Options ให้ Enterจากด้านล่างให้ไปทางขวาก็ช่วยได้นิดหน่อย อาจารย์ลองดูให้ผมหน่อยนะครับพอจะมีวิธีไหนทำให้งานมันง่ายขึ้นกว่าที่ทำทุกวันอยู่หรือป่าวผมส่งตัวอย่างมาให้นะครับ
Re: การกลับค่าจากแนวตั้งเป็นแนวนอน(TranSpose)
Posted: Wed Feb 16, 2011 2:12 pm
by snasui

ลองตามไฟล์แนบครับ
ที่เซลล์ G7 คีย์
=INDEX($F$23:$I$26,INT((COLUMNS($G7:G7)-1)/4)+1,MOD(COLUMNS($G7:G7)-1,4)+1)
Enter > Copy ไปทางขวา
Re: การกลับค่าจากแนวตั้งเป็นแนวนอน(TranSpose)
Posted: Wed Feb 16, 2011 2:24 pm
by c_parenya
อาจารย์ครับพอจะใช้ Vlookupที่เข้ากับสูตรชื่อห้างได้หรือป้าวครับ พอดีมีข้อมูลที่มากันแบบต้องมาหาชื่อห้าง บางที่มันไม่เรียงกันครับ
Re: การกลับค่าจากแนวตั้งเป็นแนวนอน(TranSpose)
Posted: Wed Feb 16, 2011 2:39 pm
by snasui

Area กับ Brance (D5, E5) กรณีต้องการ Lookup ค่ามาแสดง ในข้อมูลตั้่งแต่บรรทัดที่ 16 เป็นต้นไปให้ดูที่เซลล์ใดครับ

Re: การกลับค่าจากแนวตั้งเป็นแนวนอน(TranSpose)
Posted: Wed Feb 16, 2011 4:22 pm
by c_parenya
จะVlookup Sheet2 " D " ส่วน Sheet1 Vlookup "B" เพื่อจะได้หาค่าของร้านค้าจะได้หรือป่าวเวลาห้างไม่เรียง
Re: การกลับค่าจากแนวตั้งเป็นแนวนอน(TranSpose)
Posted: Wed Feb 16, 2011 5:55 pm
by c_parenya
ให้ดูค่าที H7 Sheet2 ครับ
Re: การกลับค่าจากแนวตั้งเป็นแนวนอน(TranSpose)
Posted: Wed Feb 16, 2011 6:31 pm
by snasui

การนำรายงานมาทำรายงานค่อนข้างจะยุ่งยากครับ ตามไฟล์แนบผมได้ทำให้ง่ายขึ้นโดยการกระจายสูตรออกไป สังเกตที่ระบายสีเหลืองไว้ในไฟล์ โดยทำตามลำดับดังนี้ครับ
1. ที่ชีท 1 เซลล์ A5 คีย์สูตรเพื่อให้แสดงชื่อสาขากำกับข้อมูล
=LOOKUP(2,1/((B$1:B5="")*(C$1:C5<>"")),C$1:C5)
Enter > Copy ลงด้านล่าง
2. ที่ชีท 1 เซลล์ D4 คีย์สูตรเพื่อเชื่อมข้อความโฉมและของแถม
=LOOKUP(CHAR(255),$D$2:D$2)&D3
Enter > Copy ไปด้านขวา
3. ที่ชีท 2 เซลล์ H1 คีย์สูตรเพื่อเชื่อมข้อความโฉมและของแถม
=LOOKUP(CHAR(255),$H$3:H$3)&H$4
Enter > Copy ไปด้านขวา
4. ที่ชีท 2 เซลล์ H5 คีย์สูตรเพื่อแสดงจำนวนตามเงื่อนไข
=SUMPRODUCT(--($D7='1'!$A$5:$A$510),--(LOOKUP(CHAR(255),$H$2:I$2)='1'!$C$5:$C$510),INDEX('1'!$D$5:$G$510,0,MATCH(I$1,'1'!$D$4:$G$4,0)))
Enter > Copy ไปด้านขวาและลงด้านล่าง
Re: การกลับค่าจากแนวตั้งเป็นแนวนอน(TranSpose)
Posted: Wed Feb 16, 2011 7:16 pm
by c_parenya
อาจารย์ครับพอใส่สูตรแล้วมันไม่ขึ้นค่าให้ครับช่วยดูให้หน่อยครับ
พอดีตรง Sheet4 ที่ส่งไปต้องเพิ่มร้านค้าอีกเยอะเลย
Re: การกลับค่าจากแนวตั้งเป็นแนวนอน(TranSpose)
Posted: Wed Feb 16, 2011 7:43 pm
by snasui

เพราะสูตรไม่ถูกต้องครับ
ที่เซลล์ I7 จาก
=SUMPRODUCT(--($D7=Sheet4!$A5:$A510),--(LOOKUP(CHAR(255),$I$2:I$2)=
Sheet4!$A5:$A510),INDEX(Sheet4!$D5:$G510,0,MATCH(I$1,Sheet4!$D4:$G4,0)))
เปลี่ยนเป็น
=SUMPRODUCT(--($D7=Sheet4!$A5:$A510),--(LOOKUP(CHAR(255),$I$2:I$2)=
Sheet4!$C5:$C510),INDEX(Sheet4!$D5:$G510,0,MATCH(I$1,Sheet4!$D4:$G4,0)))
ส่วนช่วงข้อมูลในสูตรสามารถปรับเพิ่มลดได้ตามต้องการ เช่นจาก Sheet4!$A5:$A
510 สามารถปรับเป็น Sheet4!$A5:$A
5100 หรือค่าใด ๆ ที่เพียงพอแก่การเพิ่มขึ้นของข้อมูล
และเมื่อปรับช่วงข้อมูล จะต้องปรับทุกช่วงให้มีช่วงเท่ากัน
Re: การกลับค่าจากแนวตั้งเป็นแนวนอน(TranSpose)
Posted: Thu Feb 24, 2011 11:45 am
by c_parenya
อาจารย์ครับ ถ้า เด็กลาออก 31/01/2011 เราจะใช้สูตร Today เพื่อจะได้รู้ว่าขาดงานได้กี่วันเป็นจำนวนวันที่นาดครับคิดยังไงครับ
Re: การกลับค่าจากแนวตั้งเป็นแนวนอน(TranSpose)
Posted: Thu Feb 24, 2011 11:56 am
by snasui
c_parenya wrote:อาจารย์ครับ ถ้า เด็กลาออก 31/01/2011 เราจะใช้สูตร Today เพื่อจะได้รู้ว่าขาดงานได้กี่วันเป็นจำนวนวันที่นาดครับคิดยังไงครับ

คำถามนี้เกี่ยวกับกระทู้นี้หรือไม่ครับ หากไม่ใช่ให้ตั้งกระทู้ใหม่นะครับ เพื่อเพื่อน ๆ ที่สนใจจะได้หาได้ง่าย หากอยู่ในกระทู้อื่นจะเพิ่มความลำบากในการค้นหาครับ

Re: การกลับค่าจากแนวตั้งเป็นแนวนอน(TranSpose)
Posted: Thu Feb 24, 2011 6:29 pm
by c_parenya
อาจารย์ครับพอดีที่เคยถามสูตรการกลับค่า ใช้ได้ครับแต่ข้อมูลของผมเยอะมากเลย พอมีวิธีที่เร็วกว่านี้หรือเปล่าเพราะตอนนี้เวลาทำงานต้อง กด Calculate ให้เป็น Manual แล้วพอทำงานเสร็จก็กด F9 แต่ก้รอนานมากครับ
Re: การกลับค่าจากแนวตั้งเป็นแนวนอน(TranSpose)
Posted: Thu Feb 24, 2011 6:59 pm
by snasui

การใช้สูตรด้วยเงื่อนไขแบบนี้เป็นไปได้ยากที่จะทำให้เร็วขึ้นได้ครับ การทำรายงานให้เร็วต้องนำ Database มาทำรายงาน ไม่ใช่เป็นการนำรายงานมาทำรายงานครับ ส่วน Database เป็นแบบใดนั้นลอง Search จากฟอรั่มนี้ดูครับ ผมทำตัวอย่างไว้หลายตัวอย่างครับ
Re: การกลับค่าจากแนวตั้งเป็นแนวนอน(TranSpose)
Posted: Mon Mar 07, 2011 9:19 am
by c_parenya
อาจารย์ครับผมได้ลองปรับรูปแบบจากตัวอย่างที่อาจารย์ทำให้มาแก้ไขใหม่แต่ไม่ขึ้นค่าอาจารย์ลองดูให่หน่อยครับ
Re: การกลับค่าจากแนวตั้งเป็นแนวนอน(TranSpose)
Posted: Mon Mar 07, 2011 9:37 am
by snasui

เนื่องจากสูตรไม่ถูกต้อง ลองปรับใหม่เป็นตามด้านล่างครับ
1. ที่ชีท 1 เซลล์ D4 คีย์
=LOOKUP(CHAR(255),$D$1:D$1)&LOOKUP(CHAR(255),$D$2:D$2)&D$3
Enter > Copy ไปทางขวา
2. ที่ชีท 2 เซลล์ I1 คีย์
=LOOKUP(CHAR(255),$I$3:I$3)&LOOKUP(CHAR(255),$I$4:I$4)&I$5
Enter > Copy ไปทางขวา
3. ที่ชีท 2 เซลล์ I7 คีย์
=SUMPRODUCT(--($D7='1'!$A$5:$A$85),--(LOOKUP(CHAR(255),$I$2:I$2)='1'!$C$5:$C$85),INDEX('1'!$D$5:$K$85,0,MATCH(I$1,'1'!$D$4:$K$4,0)))
Enter > Copy ไปทางขวาและลงด้านล่าง
ดูไฟล์แนบประกอบครับ
Re: การกลับค่าจากแนวตั้งเป็นแนวนอน(TranSpose)
Posted: Mon Mar 07, 2011 3:38 pm
by c_parenya
อาจารย์ครับพอเพิ่มร้านค้าใน Sheet 1 ทำไมไม่ขึ้นค่าใน Sheet 2ครับ
Re: การกลับค่าจากแนวตั้งเป็นแนวนอน(TranSpose)
Posted: Mon Mar 07, 2011 3:45 pm
by snasui

ไม่เข้าใจครับ ช่วยเขียนรายละเอียดมาด้วยครับว่าเพิ่มตรงไหน หมายถึงชีทไหน เซลล์ไหน และต้องการผลลัพธ์อย่างไร ทำตัวอย่างคำตอบที่ถูกต้องมาด้วยครับ จะได้เข้าถึงข้อมูลและหาสาเหตุได้เร็วขึ้นครับ
Re: การกลับค่าจากแนวตั้งเป็นแนวนอน(TranSpose)
Posted: Tue Mar 08, 2011 4:51 pm
by c_parenya
อาจารย์ครับที่ถามเมื่อวาน ให้ค่าของ Sheet1 ที่เป็นสีเขียว ไปแสดงผลที่ Sheet2 ที่เป็นสีเขียวเมหือนกันครับ
พอดีเคยทำครั้งที่แล้วทำได้แต่ครังนี้ไม่ขึ้นค่าครับ
Re: การกลับค่าจากแนวตั้งเป็นแนวนอน(TranSpose)
Posted: Tue Mar 08, 2011 5:07 pm
by snasui

ต้องเปลี่ยนช่วงข้อมูลในสูตรให้เป็นช่วงข้อมูลที่ใช้จริงครับ
จากสูตรที่ I7
=SUMPRODUCT(--($D7='1'!$A$5:$A$
85),--(LOOKUP(CHAR(255),$I$2:I$2)='1'!$C$5:$C$
85),INDEX('1'!$D$5:$K$
85,0,MATCH(I$1,'1'!$D$4:$K$4,0)))
เปลี่ยนเป็น
=SUMPRODUCT(--($D7='1'!$A$5:$A$
169),--(LOOKUP(CHAR(255),$I$2:I$2)='1'!$C$5:$C$
169),INDEX('1'!$D$5:$K$
169,0,MATCH(I$1,'1'!$D$4:$K$4,0)))