Page 1 of 1

สอบถามสูตรดีงตัวเลข(มิเตอร์)ออจากข้อความ

Posted: Sat Sep 18, 2021 11:05 pm
by Hengheng
เรียน อาจารย์

ต้องการดึงตัวเลขออกจากข้อความ เพื่อทำการตรวจสอบมิเตอร์ค่ะ ไม่ทราบว่าพอจะมีสูตรไหมคะ
ตรวจสอบน้ำไฟ.xlsx

Re: สอบถามสูตรดีงตัวเลข(มิเตอร์)ออจากข้อความ

Posted: Sun Sep 19, 2021 10:11 am
by snasui
:D ตัวอย่างสูตรครับ

เซลล์ J2 คีย์

=IFERROR(TRANSPOSE(LET(r,LET(md,MID(B2,SEQUENCE(LEN(B2)),1),l,MIN(FILTER(FILTER(SEQUENCE(LEN(B2)),"("=md),ISNUMBER(--MID(B2,FILTER(SEQUENCE(LEN(B2)),"("=md)+1,1)))),h,MAX(FILTER(FILTER(SEQUENCE(LEN(B2)),")"=md),ISNUMBER(--MID(B2,FILTER(SEQUENCE(LEN(B2)),")"=md)-1,1)))),MID(B2,l+1,h-l-1)),rp,SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(r,"-"," "),"="," "),")"," "),"("," "),TRIM(MID(SUBSTITUTE(TRIM(rp)," ",REPT(" ",50)),50*SEQUENCE(6,,0)+1,50)))),"")

Enter > Copy ลงด้านล่าง

เพื่ออำนวยความสะดวกในการเติมส่วนที่ขาดได้ง่ายขึ้นครับ

ดูไฟล์แนบประกอบครับ

Re: สอบถามสูตรดีงตัวเลข(มิเตอร์)ออจากข้อความ

Posted: Sun Sep 19, 2021 2:18 pm
by Hengheng
ขอบคุณค่ะอาจารย์ทำได้แล้วค่ะ แต่ขออนุญาตสอบถามเพื่อเป็นความรู้หน่อยค่ะว่า

1.สูตร Transpose และ Sequence อันนี้ใช้สำหรับอะไรคะ

2. ทำไมบาง Rows ถึงไม่มีข้อมูลขึ้นคะ

3. แล้วในกรณีที่มี 3 มิเตอร์ขึ้น หนูจะต้องใส่สูตรเพิ่มเติมยังไงคะ

ตามไฟล์แนบค่ะ


ขอบคุณค่ะ

Re: สอบถามสูตรดีงตัวเลข(มิเตอร์)ออจากข้อความ

Posted: Sun Sep 19, 2021 3:31 pm
by snasui
:D ตัวอย่างการปรับสูตรครับ

C2 คีย์

=IFERROR(TRANSPOSE(LET(r,LET(x,SUBSTITUTE(B2," )",")"),y,LEN(x),md,MID(x,SEQUENCE(y),1),l,MIN(FILTER(FILTER(SEQUENCE(y),"("=md),ISNUMBER(--MID(x,FILTER(SEQUENCE(y),"("=md)+1,1)))),h,MAX(FILTER(FILTER(SEQUENCE(y),")"=md),ISNUMBER(--MID(x,FILTER(SEQUENCE(y),")"=md)-1,1)))),MID(x,l+1,h-l-1)),rp,SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(r,"-"," "),"="," "),")"," "),"("," "),TRIM(MID(SUBSTITUTE(TRIM(rp)," ",REPT(" ",50)),50*SEQUENCE(7,,0)+1,50)))),"")

Enter > Copy ลงด้านล่าง
Hengheng wrote: Sun Sep 19, 2021 2:18 pm 1.สูตร Transpose และ Sequence อันนี้ใช้สำหรับอะไรคะ
Transpose ใช้สลับแกนข้อมูลครับ แนวคอลัมน์เป็นแนวบรรทัดหรือกลับกัน, Sequence ใช้สำหรับการแสดงค่าลำดับ เช่นเริ่มจาก 1 ถึง 10 เป็นต้น
Hengheng wrote: Sun Sep 19, 2021 2:18 pm 2. ทำไมบาง Rows ถึงไม่มีข้อมูลขึ้นคะ
เพราะมีวรรคคั่นระหว่างวงเล็บปิดกับตัวเลข
Hengheng wrote: Sun Sep 19, 2021 2:18 pm 3. แล้วในกรณีที่มี 3 มิเตอร์ขึ้น หนูจะต้องใส่สูตรเพิ่มเติมยังไงคะ
ถ้ามีหลายมิเตอร์และเขียนติด ๆ กันลองเพิ่มเลข 7 ในฟังก์ชั่นนี้เป็นตัวเลขที่เพิ่มขึ้นครับ :arrow: SEQUENCE(7,,0)

Re: สอบถามสูตรดีงตัวเลข(มิเตอร์)ออจากข้อความ

Posted: Sun Sep 19, 2021 3:47 pm
by Hengheng
ขอบคุณสำหรับคำแนะนำมากๆเลยค่ะอาจารย์

Re: สอบถามสูตรดีงตัวเลข(มิเตอร์)ออจากข้อความ

Posted: Sun Sep 19, 2021 4:29 pm
by snasui
:D จากตัวอย่างไฟล์ล่าสุดลองใช้สูตรนี้ครับ

=IFERROR(LET(x,SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(MID(B2,MIN(SEARCH({"แก๊ส","ไฟฟ้า","ประปา"},B2&"แก๊สไฟฟ้าประปา")),255),"(","|"),")","|"),"-","|"),"=","|"),y,MID(SUBSTITUTE(x,"|",REPT(" ",50)),50*SEQUENCE(20,,0)+1,50),--TRANSPOSE(FILTER(y,ISNUMBER(--y)))),"")

Re: สอบถามสูตรดีงตัวเลข(มิเตอร์)ออจากข้อความ

Posted: Sun Sep 19, 2021 10:06 pm
by Bo_ry
C2
=IF(B2="","",TRANSPOSE(FILTERXML("<x><m>"&SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(MID(LEFT(B2,FIND("@",B2)-2),FIND(" (",B2)+2,99),"=","-"),"+","-"),"(",),")",),"-","</m><m>")&"</m></x>","//m")))