Page 1 of 1
สอบถามเรื่อง การนับคำใน Excel ครับ
Posted: Mon Oct 01, 2018 11:51 am
by lnongkungl
ผมต้องการนับจำนวนคำที่พิมพ์ใน Excel ครับ เหมือน Word Count ใน Word ก็พยายามหาข้อมูลดูจนไปเจอมาแต่มันใช้ไม่ได้กับภาษาไทยครับ
สูตร =IF(LEN(TRIM(A2))=0,0,LEN(TRIM(A2))-LEN(SUBSTITUTE(A2," ",""))+1)
code vb
Code: Select all
Function intWordCount(rng As Range) As Integer
intWordCount = UBound(Split(Application.WorksheetFunction.Trim(rng.Value), " "), 1) + 1
End Function
ก็นับได้ครับ แต่ใช้ได้กับภาษาอังกฤษ กับภาษาไทยใช้ไม่ได้ เพราะวิธีการนับคือ เว้นวรรค นับเป็น 1 คำ(ในภาษาอังกฤษ) แต่กับภาษาไทยเราพิมพ์ติดกันเลย ไม่ได้นับคำเหมือนภาษาอังกฤษ
เช่น
I Love You นับได้ 3 คำ
ฉันรักเธอ นับได้ 1 คำ จริงๆต้องเป็น 3 เหมือนกัน
พอจะมีวิธีที่ทำใน excel ได้หรือไม่ครับ
Re: สอบถามเรื่อง การนับคำใน Excel ครับ
Posted: Mon Oct 01, 2018 2:49 pm
by astalavista
ภาษาไทย อาจจะต้องใช้ ComputeStatistics ของ MSword ช่วยครับ
Re: สอบถามเรื่อง การนับคำใน Excel ครับ
Posted: Mon Oct 01, 2018 7:14 pm
by snasui

ตัวอย่างการประยุกต์ใช้ฟังก์ชั่นของ Word ครับ
Code: Select all
Function intWordCount(rng As Range) As Integer
Dim wd As Object
Dim doc As Object
Dim ojbSelt As Object
Set wd = CreateObject("Word.Application")
Set doc = wd.documents.Add
Set ojselt = wd.Selection
ojselt.typetext Text:=rng.Value
intWordCount = wd.activedocument.ComputeStatistics(Statistic:=wdStatisticWords, _
IncludeFootnotesAndEndnotes:=True)
wd.activedocument.Close False
wd.Quit
End Function
Re: สอบถามเรื่อง การนับคำใน Excel ครับ
Posted: Tue Oct 02, 2018 9:51 am
by lnongkungl
ขอบคุณครับอาจารย์
รบกวนอาจารย์ ช่วยอธิบายรายละเอียดหน่อยครับ ไม่เคยใช่ฟังก์ชั่นแบบนี้ครับ
Re: สอบถามเรื่อง การนับคำใน Excel ครับ
Posted: Tue Oct 02, 2018 7:28 pm
by snasui

การการใช้ฟังก์ชั่นของ Word เข้ามาช่วยครับ
โดยสรุปคือ
Code ข้างบนเป็นการสร้างโปรแกรม Word สร้างเอกสารและกำหนด Object ปัจจุบันเพื่อจะวางข้อมูลที่รับมาจากตัวแปร rng จากนั้นก็ใช้ฟังก์ชั่นการนับคำตามโจทย์ด้วยความสามารถของ Word ครับ
Re: สอบถามเรื่อง การนับคำใน Excel ครับ
Posted: Fri Oct 05, 2018 9:32 am
by lnongkungl
หลักการคือ เอาข้อมูลที่เราต้องการนับคำ ไปประมวลผลใน Word แล้ว ส่งผลคืนมาที่ Excel ใช่หรือไม่ครับ
Re: สอบถามเรื่อง การนับคำใน Excel ครับ
Posted: Fri Oct 05, 2018 11:31 pm
by snasui
lnongkungl wrote: Fri Oct 05, 2018 9:32 am
หลักการคือ เอาข้อมูลที่เราต้องการนับคำ ไปประมวลผลใน Word แล้ว ส่งผลคืนมาที่ Excel ใช่หรือไม่ครับ

ถูกต้องครับ
Re: สอบถามเรื่อง การนับคำใน Excel ครับ
Posted: Mon Oct 08, 2018 10:01 am
by lnongkungl
ขอสอบถามอีกเรื่องครับ อันนี้จนปัญญาจริงๆ หาข้อมูลไม่เจอเลย
คือต้องการตรวจสอบคำที่พิมพ์หรือสะกดผิดครับ ว่ามีกี่ตัวแล้วก็ sum เป็นตัวเลข
วิธีการคล้ายๆ Compare ของ Word ครับ อาจจะมีประโยคที่พิมพ์หรือสะกดถูกไว้แล้ว เอามาเทียบกันว่าผิดกี่คำ ประมาณนี้ครับ
ใช้ Spelling มันก็แสดงทีละคำๆ ซึ่งมันไม่ตอบโจทย์ เพราะเราไม่ต้องการแก้ให้ถูก แค่ต้องการเช็คว่าผิดกี่คำ
ผมหาข้อมูลไม่ได้เลย ขอแนวทางจากอาจารย์ด้วยครับ หรือ พอจะมี link ที่เกี่ยวข้องกับวิธีการทำประมาณนี้หรือเปล่าครับ
Re: สอบถามเรื่อง การนับคำใน Excel ครับ
Posted: Mon Oct 08, 2018 11:22 am
by lnongkungl
หาข้อมูลจนเจอแล้วครับ ได้ตามความต้องการคือ จะเปลี่ยนเฉพาะคำที่ผิด ให้เป็นตัวสีแดง
แต่ติดปัญหาคือ ใช้กับภาษาไทยไม่ได้ รบกวน อาจารย์ดูให้ทีครับ
Code: Select all
Private Sub Worksheet_Change(ByVal Target As Range)
Call CheckSpelling1(Target)
End Sub
Sub CheckSpelling1(r As Range)
Dim rng As Range
Dim ar() As String
Dim i As Long
Dim j As Long
With Application.SpellingOptions
.IgnoreCaps = True
.IgnoreFileNames = True
.IgnoreMixedDigits = True
End With
For Each rng In r
If Not rng.HasFormula And VarType(rng.Value) = vbString Then
ar = Split(Replace(rng.Value, Chr(160), " "), " ")
j = 1
rng.Font.ColorIndex = xlColorIndexAutomatic
For i = 0 To UBound(ar)
If Not Application.CheckSpelling(Word:=ar(i)) Then
rng.Characters(j, Len(ar(i))).Font.ColorIndex = 3
End If
j = j + 1 + Len(ar(i))
Next i
End If
Next rng
End Sub
Re: สอบถามเรื่อง การนับคำใน Excel ครับ
Posted: Mon Oct 08, 2018 8:37 pm
by snasui

ลองตรวจสอบการตรวจสอบการสะกดของภาษาไทยดูว่ามีหรือไม่ครับ
วิธีตรวจสอบ
คีย์คำว่า cta (เป็นคำผิด) ไปที่เมนู Review > ABC Spelling > สังเกตตรงช่อง Dictionary Language ว่ามีภาษาไทยหรือไม่ หากไม่มีก็ตรวจสอบไม่ได้ครับ
Re: สอบถามเรื่อง การนับคำใน Excel ครับ
Posted: Tue Oct 09, 2018 9:30 am
by lnongkungl
จริงด้วยครับ ผมก็ลืมไปว่าไม่ได้ลง Pack ไทยไว้ พอลงไว้ก็เช็คได้ครับ
แต่ก็ติดปัญหาคือ เวลาเจอคำผิดแล้ว ไม่แยกคำเหมือนอังกฤษครับ เพราะเราไม่ได้เว้นวรรค เหมือนภาษาอังกฤษ
เช่น
I loev you ก็จะแดงแต่ตำว่า loev
ฉันรกัเธอ ไม่แดงแค่ รกั แต่แดง ทั้งประโยคเลยครับ
เหมือนกับวิธีนับคำครับ
Re: สอบถามเรื่อง การนับคำใน Excel ครับ
Posted: Tue Oct 09, 2018 9:05 pm
by snasui

การจะ Highlight ได้จะต้องทราบคำผิด ในภาษาอังกฤษมีการแบ่งคำด้วยวรรค ส่วนภาษาไทยไม่ได้แบ่งคำลักษณะนั้นแต่จะแบ่งวรรคระหว่างประโยคเลยจึงค่อนข้างลำบากที่จะระบายสีคำแบบภาษาอังกฤษ งานลักษณะนี้ผมคงช่วยไม่ได้มากครับ