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
:D ลองตามไฟล์แนบครับ

ที่เซลล์ 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
:D 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
:D การนำรายงานมาทำรายงานค่อนข้างจะยุ่งยากครับ ตามไฟล์แนบผมได้ทำให้ง่ายขึ้นโดยการกระจายสูตรออกไป สังเกตที่ระบายสีเหลืองไว้ในไฟล์ โดยทำตามลำดับดังนี้ครับ

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
:D เพราะสูตรไม่ถูกต้องครับ

ที่เซลล์ 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:$A510 สามารถปรับเป็น Sheet4!$A5:$A5100 หรือค่าใด ๆ ที่เพียงพอแก่การเพิ่มขึ้นของข้อมูล และเมื่อปรับช่วงข้อมูล จะต้องปรับทุกช่วงให้มีช่วงเท่ากัน

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 เพื่อจะได้รู้ว่าขาดงานได้กี่วันเป็นจำนวนวันที่นาดครับคิดยังไงครับ
:shock: คำถามนี้เกี่ยวกับกระทู้นี้หรือไม่ครับ หากไม่ใช่ให้ตั้งกระทู้ใหม่นะครับ เพื่อเพื่อน ๆ ที่สนใจจะได้หาได้ง่าย หากอยู่ในกระทู้อื่นจะเพิ่มความลำบากในการค้นหาครับ 8-)

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
:D การใช้สูตรด้วยเงื่อนไขแบบนี้เป็นไปได้ยากที่จะทำให้เร็วขึ้นได้ครับ การทำรายงานให้เร็วต้องนำ 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
:D เนื่องจากสูตรไม่ถูกต้อง ลองปรับใหม่เป็นตามด้านล่างครับ

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
:D ต้องเปลี่ยนช่วงข้อมูลในสูตรให้เป็นช่วงข้อมูลที่ใช้จริงครับ

จากสูตรที่ 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)))