Page 1 of 1
ดีงข้อมูลในชื่อที่มีอยู่แต่ละ ชีทมาแสดง
Posted: Fri May 24, 2019 9:31 pm
by March201711
เช่น ดึง cell b6 ชื่อ true โดยหาว่าชื่อนี้อยู่ชีทไหน มาแสดงที่ cell e6 คือ 4.86 ค่ะ ตามที่ high light สีเขียว
Re: ดีงข้อมูลในชื่อที่มีอยู่แต่ละ ชีทมาแสดง
Posted: Fri May 24, 2019 11:18 pm
by puriwutpokin
ที่ E6=VLOOKUP("*"&B6,INDIRECT(INDEX("'"&{"INDUS","TECH"}&"'!B2:G200",MATCH(TRUE,COUNTIF(INDIRECT("'"&{"INDUS","TECH"}&"'!B2:B200"),"*"&B6)>0,0))),6,0) คัดลอกลงครับ
Re: ดีงข้อมูลในชื่อที่มีอยู่แต่ละ ชีทมาแสดง
Posted: Sat May 25, 2019 8:58 am
by March201711
ถ้ามีการเพิ่มชีทเข้ามาเรื่อยๆ เช่น consump และ propcon หรือ ชีทอื่นๆ จะปรับสูตรอย่างไรคะ เพราะมี sheet ขึ้นมาเรื่อยๆน่ะค่ะ
Re: ดีงข้อมูลในชื่อที่มีอยู่แต่ละ ชีทมาแสดง
Posted: Sat May 25, 2019 10:06 am
by puriwutpokin
ปรับเป็นที่ F2:F9 คีย์ชื่อชีทที่มี
ที่ E6=VLOOKUP("*"&B6,INDIRECT(INDEX($F$2:$F$9&"!B2:G200",MATCH(TRUE,COUNTIF(INDIRECT($F$2:$F$9&"!B2:B200"),"*"&B6)>0,0))),6,0) กด Ctrl+Shift+Enter คัดลอกลงครับ
หรือไม่ชอบ Array
ก็ปรับเป็น E6=VLOOKUP("*"&B6,INDIRECT(INDEX($F$2:$F$9&"!B2:G200",MATCH(TRUE,INDEX(COUNTIF(INDIRECT($F$2:$F$9&"!B2:B200"),"*"&B6)>0,0),0))),6,0) คัดลอกลงครับ
Re: ดีงข้อมูลในชื่อที่มีอยู่แต่ละ ชีทมาแสดง
Posted: Sat May 25, 2019 11:46 am
by March201711
มาปรับใช้กับงานแล้ว ทำไมข้อมูลขึ้น #ref ทั้งหมดคะ
Re: ดีงข้อมูลในชื่อที่มีอยู่แต่ละ ชีทมาแสดง
Posted: Sat May 25, 2019 12:32 pm
by snasui

เนื่องจากมีการตั้งชื่อ Range Name ให้ชื่อ index ซึ่งไปซ้ำกับชื่อฟังก์ชั่น Index ทำให้ฟังก์ชั่น Index ไม่สามารถทำงานได้ครับ
วิธีการแก้ไข
- คลิกขวาที่แถบชีตใด ๆ > Unhide
- เลือกชีต Set_Index > OK
- เข้าเมนู Formulas > Name Manager > เลือก Range Name ที่ชื่อ Index > คลิกปุ่ม Edit
- ตรง Name เปลี่ยนคำว่า Index เป็นข้อความอื่น > OK
- แก้ไขสูตรโดยเปลี่ยนข้อความตามข้อ 4 ให้กลับมาเป็น Index
Re: ดีงข้อมูลในชื่อที่มีอยู่แต่ละ ชีทมาแสดง
Posted: Sat May 25, 2019 2:20 pm
by March201711
ค่ะ อีกนิดนึงค่ะ ทำไมใน Name manager ในแต่ละบรรทัด ไม่สามารถ delete แต่ละรายการได้คะ
Re: ดีงข้อมูลในชื่อที่มีอยู่แต่ละ ชีทมาแสดง
Posted: Sat May 25, 2019 2:34 pm
by puriwutpokin
มันเป็นค่าจากตาราง Table ครับ ต้องไปลบตารางออกเท่านั้นครับ
Re: ดีงข้อมูลในชื่อที่มีอยู่แต่ละ ชีทมาแสดง
Posted: Sat May 25, 2019 3:15 pm
by March201711
ลบตารางยังไงคะ พยายามแปลงตารางเป็นปกติแล้วก็ลบไม่ได้ค่ะ
Re: ดีงข้อมูลในชื่อที่มีอยู่แต่ละ ชีทมาแสดง
Posted: Sat May 25, 2019 3:22 pm
by puriwutpokin
ที่ไฟล์เดิม กด F5 จะมีคำว่า Table เลือกแล้ว กด Ok มันจะไปที่ตารางนั้น แล้ว Convert เป็นช่วงปกติ
ไฟล์ที่แนบมานี้เอาออกให้แล้วครับ

Re: ดีงข้อมูลในชื่อที่มีอยู่แต่ละ ชีทมาแสดง
Posted: Sat May 25, 2019 3:25 pm
by snasui
March201711 wrote: Sat May 25, 2019 3:15 pm
ลบตารางยังไงคะ
พยายามแปลงตารางเป็นปกติแล้วก็ลบไม่ได้ค่ะ

กรุณาเล่าขั้นตอนมาอย่างละเอียดจะได้ช่วยวินิจฉัยให้ได้ครับ
Re: ดีงข้อมูลในชื่อที่มีอยู่แต่ละ ชีทมาแสดง
Posted: Sat May 25, 2019 8:46 pm
by March201711
ได้แล้วค่ะ
สงสัยนิดนึงค่ะ
E6=VLOOKUP("*"&B6,INDIRECT(INDEX($F$2:$F$9&"!B2:G200",MATCH(TRUE,INDEX(COUNTIF(INDIRECT($F$2:$F$9&"!B2:B200"),"*"&B6)>0,0),0))),6,0) คัดลอกลงครับ
ทำไมต้อง vlookup ค่า * ก่อนคะ แล้วค่า match ทำไมต้องหาค่า true ด้วยคะ
Re: ดีงข้อมูลในชื่อที่มีอยู่แต่ละ ชีทมาแสดง
Posted: Sat May 25, 2019 9:05 pm
by puriwutpokin
March201711 wrote: Sat May 25, 2019 8:46 pm
ได้แล้วค่ะ
สงสัยนิดนึงค่ะ
E6=VLOOKUP("*"&B6,INDIRECT(INDEX($F$2:$F$9&"!B2:G200",MATCH(TRUE,INDEX(COUNTIF(INDIRECT($F$2:$F$9&"!B2:B200"),"*"&B6)>0,0),0))),6,0) คัดลอกลงครับ
ทำไมต้อง vlookup ค่า * ก่อนคะ แล้วค่า match ทำไมต้องหาค่า true ด้วยคะ
ลองเอาค่า "*"& ออกทั้งหมดดูครับว่า จะจับคำว่า TRUE จากเงื่อนไขไม่ได้เพราะ TRUE ไม่ซ้ำกับฟังก์ชั่น TRUE ครับ ต้องทำ
ให้เกิดความแต่ต่างครับ ส่วน TRUE ตรง MATCH(
TRUE,INDEX(COUNTIF.....
สีแดงนั้นเป็นคนละความหมายกับ TRUE จากเงื่อนไขการหาของข้อมูลครับ คนละตัวกันครับ แค่มันไปตรงกัน สีแดง
เป็นเงื่อนไขของสูตรนี้เท่านั้นเองครับไม่เกี่ยวข้องกันครับ

Re: ดีงข้อมูลในชื่อที่มีอยู่แต่ละ ชีทมาแสดง
Posted: Sat May 25, 2019 9:48 pm
by March201711
เข้าใจแล้วค่ะ ขอบคุณ คุณ puriwutpokin และ อาจารย์ มากค่ะ
