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
:D ตัวอย่างการประยุกต์ใช้ฟังก์ชั่นของ 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
:D การการใช้ฟังก์ชั่นของ 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 ใช่หรือไม่ครับ
:D ถูกต้องครับ

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
:D ลองตรวจสอบการตรวจสอบการสะกดของภาษาไทยดูว่ามีหรือไม่ครับ

วิธีตรวจสอบ

คีย์คำว่า 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
:D การจะ Highlight ได้จะต้องทราบคำผิด ในภาษาอังกฤษมีการแบ่งคำด้วยวรรค ส่วนภาษาไทยไม่ได้แบ่งคำลักษณะนั้นแต่จะแบ่งวรรคระหว่างประโยคเลยจึงค่อนข้างลำบากที่จะระบายสีคำแบบภาษาอังกฤษ งานลักษณะนี้ผมคงช่วยไม่ได้มากครับ