محاسبه تعداد کلمات با چند هزار سطر

Collapse
این تاپیک قفل است.
X
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • fo-eng

    • 2014/06/02
    • 51

    [حل شده] محاسبه تعداد کلمات با چند هزار سطر

    سلام. وقت بخیر.
    ببخشید اگر بالای 6 هزار سطر داشته باشیم که در سلول یا خانه اول هر سطر، جمله ای نوشته شده باشد و بخواییم تک تک کلمات و تعداد تکرار کلمات را بصورت مجزا استخراج کنیم چکار باید کنیم و بهتر است از چه تابعی استفاده کنیم؟
    آیا بهینه می باشد از اکسل استفاده کنیم یا بهتر هستش بریم سراغ زبان های برنامه نویسی و از اونها کمک بگیریم؟
    [FONT=Times New Roman][SIZE=3][COLOR=#000000] [/COLOR][/SIZE][/FONT][CENTER][COLOR=#800080] [/COLOR][/CENTER][COLOR=#800080] [/COLOR][CENTER][COLOR=#800080]گاهی شاپرکی را از تار عنکبوت می گیری ،[/COLOR][/CENTER][COLOR=#800080] [/COLOR][CENTER][COLOR=#800080] خیلی آرام ...[/COLOR][/CENTER][COLOR=#800080] [/COLOR][CENTER][COLOR=#800080]تا رهایش کنی ؛[/COLOR][/CENTER][COLOR=#800080] [/COLOR][CENTER][COLOR=#800080] شاپرک میان دستانت له می شود ...[/COLOR][/CENTER][COLOR=#800080] [/COLOR][CENTER][COLOR=#800080]نیت ِ تو کجا[/COLOR][/CENTER][COLOR=#800080] [/COLOR][CENTER][COLOR=#800080] و سرنوشت او کجا ...[/COLOR][/CENTER][COLOR=#800080] [/COLOR][CENTER][COLOR=#800080] [/COLOR][/CENTER]
  • generalsamad
    مدير تالار توابع

    • 2014/06/22
    • 1496

    #2
    با سلام
    شما با استفاده از تابع countif و همچنین با استفاده از pivot table میتونید به جواب برسید
    راه پیشنهادی من استفاده از pivot table در اکسل هست
    [CENTER]
    [SIGPIC][/SIGPIC]
    [/CENTER]

    کامنت

    • fo-eng

      • 2014/06/02
      • 51

      #3
      اگر امکان داره کمی با جزئیات بیشتر راهنمایی بفرمایید؟
      [FONT=Times New Roman][SIZE=3][COLOR=#000000] [/COLOR][/SIZE][/FONT][CENTER][COLOR=#800080] [/COLOR][/CENTER][COLOR=#800080] [/COLOR][CENTER][COLOR=#800080]گاهی شاپرکی را از تار عنکبوت می گیری ،[/COLOR][/CENTER][COLOR=#800080] [/COLOR][CENTER][COLOR=#800080] خیلی آرام ...[/COLOR][/CENTER][COLOR=#800080] [/COLOR][CENTER][COLOR=#800080]تا رهایش کنی ؛[/COLOR][/CENTER][COLOR=#800080] [/COLOR][CENTER][COLOR=#800080] شاپرک میان دستانت له می شود ...[/COLOR][/CENTER][COLOR=#800080] [/COLOR][CENTER][COLOR=#800080]نیت ِ تو کجا[/COLOR][/CENTER][COLOR=#800080] [/COLOR][CENTER][COLOR=#800080] و سرنوشت او کجا ...[/COLOR][/CENTER][COLOR=#800080] [/COLOR][CENTER][COLOR=#800080] [/COLOR][/CENTER]

      کامنت

      • Amir Ghasemiyan

        • 2013/09/20
        • 4598
        • 100.00

        #4
        نوشته اصلی توسط fo-eng
        سلام. وقت بخیر.
        ببخشید اگر بالای 6 هزار سطر داشته باشیم که در سلول یا خانه اول هر سطر، جمله ای نوشته شده باشد و بخواییم تک تک کلمات و تعداد تکرار کلمات را بصورت مجزا استخراج کنیم چکار باید کنیم و بهتر است از چه تابعی استفاده کنیم؟
        آیا بهینه می باشد از اکسل استفاده کنیم یا بهتر هستش بریم سراغ زبان های برنامه نویسی و از اونها کمک بگیریم؟
        سلام دوست عزیز
        برای جدا کردن کلمات یک جمله میتونین از از تب data گزینه text to column استفاده کنید
        برای شمارش هر کلمه هم همونطور که صمد عزیز گفت میتونین از countif کمک بگیرین

        اگر نیاز به توضیح بیشتر هست بفرمایید.

        کامنت

        • fo-eng

          • 2014/06/02
          • 51

          #5
          بله سپاسگذارم از پاسخ گویی هر دو بزرگوار.
          خب من بوسیله text to column هر کلمه رو جدا کردم. حالا می خوام خودش برام فرضا در یک شیت دیگه یا مثلا آخرین سلول شیت جاری بیاد و هر کدوم از این کلمات رو جدا بنویسه و تعداد تکرارش هم زیرش بنویسه!
          میشه با countif برام مثال بزنید>. ببینید منظورم این هست که من فرضا نمی تونم بیام به countif بگم بیا برام این کلمه رو پیدا کن، می خوام اکسل خودش کلمات رو بگیره و تعداد تکرارش رو بده، چون من اگر فرضا بخوام با این دستور
          =COUNTIF(A1:H1;"hello")

          به اکسل بگم برو و این کلمه رو پیدا و فرضا بخوام برای هر کلمه این 6 هزار سطر این کار رو کنم خیلی طول میکشه! راه حلی نیست که زودتر بشه ان کار رو کرد؟
          اینم فایلم که ستون بندیش کردم : eeditfile
          ممنون
          [FONT=Times New Roman][SIZE=3][COLOR=#000000] [/COLOR][/SIZE][/FONT][CENTER][COLOR=#800080] [/COLOR][/CENTER][COLOR=#800080] [/COLOR][CENTER][COLOR=#800080]گاهی شاپرکی را از تار عنکبوت می گیری ،[/COLOR][/CENTER][COLOR=#800080] [/COLOR][CENTER][COLOR=#800080] خیلی آرام ...[/COLOR][/CENTER][COLOR=#800080] [/COLOR][CENTER][COLOR=#800080]تا رهایش کنی ؛[/COLOR][/CENTER][COLOR=#800080] [/COLOR][CENTER][COLOR=#800080] شاپرک میان دستانت له می شود ...[/COLOR][/CENTER][COLOR=#800080] [/COLOR][CENTER][COLOR=#800080]نیت ِ تو کجا[/COLOR][/CENTER][COLOR=#800080] [/COLOR][CENTER][COLOR=#800080] و سرنوشت او کجا ...[/COLOR][/CENTER][COLOR=#800080] [/COLOR][CENTER][COLOR=#800080] [/COLOR][/CENTER]

          کامنت

          • fo-eng

            • 2014/06/02
            • 51

            #6
            دوستان از طریق wordcount هم میشه! اگر از این تابع اطلاعی دارید ممنون میشم در اختیارم بگذارید! برای من کار نکرد!
            [FONT=Times New Roman][SIZE=3][COLOR=#000000] [/COLOR][/SIZE][/FONT][CENTER][COLOR=#800080] [/COLOR][/CENTER][COLOR=#800080] [/COLOR][CENTER][COLOR=#800080]گاهی شاپرکی را از تار عنکبوت می گیری ،[/COLOR][/CENTER][COLOR=#800080] [/COLOR][CENTER][COLOR=#800080] خیلی آرام ...[/COLOR][/CENTER][COLOR=#800080] [/COLOR][CENTER][COLOR=#800080]تا رهایش کنی ؛[/COLOR][/CENTER][COLOR=#800080] [/COLOR][CENTER][COLOR=#800080] شاپرک میان دستانت له می شود ...[/COLOR][/CENTER][COLOR=#800080] [/COLOR][CENTER][COLOR=#800080]نیت ِ تو کجا[/COLOR][/CENTER][COLOR=#800080] [/COLOR][CENTER][COLOR=#800080] و سرنوشت او کجا ...[/COLOR][/CENTER][COLOR=#800080] [/COLOR][CENTER][COLOR=#800080] [/COLOR][/CENTER]

            کامنت

            • Amir Ghasemiyan

              • 2013/09/20
              • 4598
              • 100.00

              #7
              نوشته اصلی توسط fo-eng
              دوستان از طریق wordcount هم میشه! اگر از این تابع اطلاعی دارید ممنون میشم در اختیارم بگذارید! برای من کار نکرد!
              اون لینکی که به من دادین و این تابع که میگین از کدنویسی vba استفاده شده. ربطی به توابع اکسل نداره. اگر میخواین اون رو براتون توضیح بدم

              کامنت

              • Amir Ghasemiyan

                • 2013/09/20
                • 4598
                • 100.00

                #8
                نوشته اصلی توسط fo-eng
                بله سپاسگذارم از پاسخ گویی هر دو بزرگوار.
                خب من بوسیله text to column هر کلمه رو جدا کردم. حالا می خوام خودش برام فرضا در یک شیت دیگه یا مثلا آخرین سلول شیت جاری بیاد و هر کدوم از این کلمات رو جدا بنویسه و تعداد تکرارش هم زیرش بنویسه!
                میشه با countif برام مثال بزنید>. ببینید منظورم این هست که من فرضا نمی تونم بیام به countif بگم بیا برام این کلمه رو پیدا کن، می خوام اکسل خودش کلمات رو بگیره و تعداد تکرارش رو بده، چون من اگر فرضا بخوام با این دستور
                =COUNTIF(A1:H1;"hello")

                به اکسل بگم برو و این کلمه رو پیدا و فرضا بخوام برای هر کلمه این 6 هزار سطر این کار رو کنم خیلی طول میکشه! راه حلی نیست که زودتر بشه ان کار رو کرد؟
                اینم فایلم که ستون بندیش کردم : eeditfile
                ممنون
                یک فایل خام با 100 تا سطر بهم بدین راهشو بهتون بگم بعد خودتون انجام بدین
                درضمن اگر میخواین خود اکسل بیاد براتون همه کار رو اتومات انجام بده باید کدنویسی کنین

                کامنت

                • fo-eng

                  • 2014/06/02
                  • 51

                  #9
                  نوشته اصلی توسط amir ghasemiyan
                  یک فایل خام با 100 تا سطر بهم بدین راهشو بهتون بگم بعد خودتون انجام بدین
                  درضمن اگر میخواین خود اکسل بیاد براتون همه کار رو اتومات انجام بده باید کدنویسی کنین
                  سپاسگذارم از لطف شما.
                  بفرمایید: editfile - Copy
                  [FONT=Times New Roman][SIZE=3][COLOR=#000000] [/COLOR][/SIZE][/FONT][CENTER][COLOR=#800080] [/COLOR][/CENTER][COLOR=#800080] [/COLOR][CENTER][COLOR=#800080]گاهی شاپرکی را از تار عنکبوت می گیری ،[/COLOR][/CENTER][COLOR=#800080] [/COLOR][CENTER][COLOR=#800080] خیلی آرام ...[/COLOR][/CENTER][COLOR=#800080] [/COLOR][CENTER][COLOR=#800080]تا رهایش کنی ؛[/COLOR][/CENTER][COLOR=#800080] [/COLOR][CENTER][COLOR=#800080] شاپرک میان دستانت له می شود ...[/COLOR][/CENTER][COLOR=#800080] [/COLOR][CENTER][COLOR=#800080]نیت ِ تو کجا[/COLOR][/CENTER][COLOR=#800080] [/COLOR][CENTER][COLOR=#800080] و سرنوشت او کجا ...[/COLOR][/CENTER][COLOR=#800080] [/COLOR][CENTER][COLOR=#800080] [/COLOR][/CENTER]

                  کامنت

                  • Amir Ghasemiyan

                    • 2013/09/20
                    • 4598
                    • 100.00

                    #10
                    نوشته اصلی توسط fo-eng
                    سپاسگذارم از لطف شما.
                    بفرمایید: editfile - Copy
                    کد:
                    Sub PureData()
                    [COLOR=#ff0000]For i = 1 To 100
                    همون فایل قبلی بهتر بود. راحت تر میشد روش کار کرد
                    دوست عزیز چون حجم فایل شما خیلی زیاده من به عنوان نمونه 100 جمله اول رو درست کردم. شما این رو بسط بدین به کل کدتون
                    
                    ابتدا یک کد کوتاه نوشتم که همه کلمات رو بصورت یکتا در یک ستون بنویسه. 
                    
                    1:
                        If Cells(i, 2).Text = "" Then
                            Cells(i, 1).Copy
                            Sheet2.Range("A1048576").End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
                            i = i + 1
                            GoTo 1
                        End If
                        Sheet1.Range(Cells(i, 1), Cells(i, 1).End(xlToRight)).Copy
                        Sheet2.Range("A1048576").End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues, , , True
                    Next i
                    Sheet2.Activate
                    Add = Range(Cells(2, 1), Cells(2, 1).End(xlDown)).Address
                    Sheet2.Range(Add).RemoveDuplicates Columns:=1, Header:=xlNo
                    Rows("1:1").Delete Shift:=xlUp
                    End Sub
                    شما خودتون کدنویسی بلدین. فقط کافیه قسمت قرمز شده رو تغییر بدین


                    بعد برای محاسبه تعداد تکرار از فرمول زیر استفاده کنید
                    کد:
                    =COUNTIF(database;A1)
                    برای اینکه راحت تر منظورم رو متوجه بشید یک فایل ضمیمه میکنم[/COLOR]
                    فایل های پیوست شده

                    کامنت

                    • fo-eng

                      • 2014/06/02
                      • 51

                      #11
                      نوشته اصلی توسط amir ghasemiyan
                      کد:
                      Sub PureData()
                      [COLOR=#ff0000]For i = 1 To 100
                      همون فایل قبلی بهتر بود. راحت تر میشد روش کار کرد
                      دوست عزیز چون حجم فایل شما خیلی زیاده من به عنوان نمونه 100 جمله اول رو درست کردم. شما این رو بسط بدین به کل کدتون
                      
                      ابتدا یک کد کوتاه نوشتم که همه کلمات رو بصورت یکتا در یک ستون بنویسه. 
                      
                      1:
                          If Cells(i, 2).Text = "" Then
                              Cells(i, 1).Copy
                              Sheet2.Range("A1048576").End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
                              i = i + 1
                              GoTo 1
                          End If
                          Sheet1.Range(Cells(i, 1), Cells(i, 1).End(xlToRight)).Copy
                          Sheet2.Range("A1048576").End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues, , , True
                      Next i
                      Sheet2.Activate
                      Add = Range(Cells(2, 1), Cells(2, 1).End(xlDown)).Address
                      Sheet2.Range(Add).RemoveDuplicates Columns:=1, Header:=xlNo
                      Rows("1:1").Delete Shift:=xlUp
                      End Sub
                      شما خودتون کدنویسی بلدین. فقط کافیه قسمت قرمز شده رو تغییر بدین


                      بعد برای محاسبه تعداد تکرار از فرمول زیر استفاده کنید
                      کد:
                      =COUNTIF(database;A1)
                      برای اینکه راحت تر منظورم رو متوجه بشید یک فایل ضمیمه میکنم[/COLOR]
                      عذر می خوام شما وارد محیط کدنویسی اکسل می شید و درون ماژول این کد رو می نویسید.
                      بعد در خود محیط اکسل چطور روش کار می کنید؟
                      اینکه اومدید هر کلمه رو درون یک سلول نوشتید و تعداد تکرارش رو روبروش مشخص کردید؟ این چطوری میشه؟
                      منم اومدم در محیط کدنویسی کد شما رو نوشتم و بعد رفتم روبروی اولین خانه این کد رو نوشتم: =COUNTIF(database;A1)
                      ولی خطا داد! کار دیگری هم باید انجام میدادم؟
                      [FONT=Times New Roman][SIZE=3][COLOR=#000000] [/COLOR][/SIZE][/FONT][CENTER][COLOR=#800080] [/COLOR][/CENTER][COLOR=#800080] [/COLOR][CENTER][COLOR=#800080]گاهی شاپرکی را از تار عنکبوت می گیری ،[/COLOR][/CENTER][COLOR=#800080] [/COLOR][CENTER][COLOR=#800080] خیلی آرام ...[/COLOR][/CENTER][COLOR=#800080] [/COLOR][CENTER][COLOR=#800080]تا رهایش کنی ؛[/COLOR][/CENTER][COLOR=#800080] [/COLOR][CENTER][COLOR=#800080] شاپرک میان دستانت له می شود ...[/COLOR][/CENTER][COLOR=#800080] [/COLOR][CENTER][COLOR=#800080]نیت ِ تو کجا[/COLOR][/CENTER][COLOR=#800080] [/COLOR][CENTER][COLOR=#800080] و سرنوشت او کجا ...[/COLOR][/CENTER][COLOR=#800080] [/COLOR][CENTER][COLOR=#800080] [/COLOR][/CENTER]

                      کامنت

                      • Amir Ghasemiyan

                        • 2013/09/20
                        • 4598
                        • 100.00

                        #12
                        نوشته اصلی توسط fo-eng
                        عذر می خوام شما وارد محیط کدنویسی اکسل می شید و درون ماژول این کد رو می نویسید.
                        بعد در خود محیط اکسل چطور روش کار می کنید؟
                        اینکه اومدید هر کلمه رو درون یک سلول نوشتید و تعداد تکرارش رو روبروش مشخص کردید؟ این چطوری میشه؟
                        منم اومدم در محیط کدنویسی کد شما رو نوشتم و بعد رفتم روبروی اولین خانه این کد رو نوشتم: =COUNTIF(database;A1)
                        ولی خطا داد! کار دیگری هم باید انجام میدادم؟
                        من فکر کردم شما با این محیط آشنایی مقدماتی دارین
                        اول از همه کل محدوده ای که کلمات هستند رو انتخاب کنید. بعد یک نام مثلا database براشون تعریف کنین
                        بعد برین تو محیط برنامه نویسی و این کد که دادم خدمتتون رو ران کنین. (دقت کنین که حتما شیت داده ها فعال باشه بعد وارد محیط برنامه نویسی بشید)
                        وقتی کار کد تموم شد برین تو شیت دومی و جلوی ستون اول که لیست کلمات ساخته شده فرمول رو بنویسین

                        کامنت

                        • fo-eng

                          • 2014/06/02
                          • 51

                          #13
                          نوشته اصلی توسط amir ghasemiyan
                          من فکر کردم شما با این محیط آشنایی مقدماتی دارین
                          اول از همه کل محدوده ای که کلمات هستند رو انتخاب کنید. بعد یک نام مثلا database براشون تعریف کنین
                          بعد برین تو محیط برنامه نویسی و این کد که دادم خدمتتون رو ران کنین. (دقت کنین که حتما شیت داده ها فعال باشه بعد وارد محیط برنامه نویسی بشید)
                          وقتی کار کد تموم شد برین تو شیت دومی و جلوی ستون اول که لیست کلمات ساخته شده فرمول رو بنویسین
                          سپاسگذارم.
                          نه راستش اولین باره وارد محیط کدنویسی اکسل شدم.
                          ببینید من کل محدوده رو انتخاب کردم و از اینجا نام database رو براش انتخاب کردم.


                          خب این از این. alt + f11 زدم و وارد محیط برنامه نویسی شدم و بجای 100 عدد 5575 رو زدم که تعداد سطرهام رو نشون میده ولی خطا داد
                          [FONT=Times New Roman][SIZE=3][COLOR=#000000] [/COLOR][/SIZE][/FONT][CENTER][COLOR=#800080] [/COLOR][/CENTER][COLOR=#800080] [/COLOR][CENTER][COLOR=#800080]گاهی شاپرکی را از تار عنکبوت می گیری ،[/COLOR][/CENTER][COLOR=#800080] [/COLOR][CENTER][COLOR=#800080] خیلی آرام ...[/COLOR][/CENTER][COLOR=#800080] [/COLOR][CENTER][COLOR=#800080]تا رهایش کنی ؛[/COLOR][/CENTER][COLOR=#800080] [/COLOR][CENTER][COLOR=#800080] شاپرک میان دستانت له می شود ...[/COLOR][/CENTER][COLOR=#800080] [/COLOR][CENTER][COLOR=#800080]نیت ِ تو کجا[/COLOR][/CENTER][COLOR=#800080] [/COLOR][CENTER][COLOR=#800080] و سرنوشت او کجا ...[/COLOR][/CENTER][COLOR=#800080] [/COLOR][CENTER][COLOR=#800080] [/COLOR][/CENTER]

                          کامنت

                          • Amir Ghasemiyan

                            • 2013/09/20
                            • 4598
                            • 100.00

                            #14
                            فایلی که فرستادم رو نگاه کنید.
                            برای تعریف نام قسمت refers to رو نگاه کنید

                            شما باید یک شیت دیگه هم بسازید. دقیقا مثل فایلی که براتون فرستادم. ببخشید اینو یادم رفت بهتون بگم

                            کامنت

                            • fo-eng

                              • 2014/06/02
                              • 51

                              #15
                              خدا رو شکر اجرا شد.
                              نهایت سپاس و تشکر رو از شما بابت همکاری دارم.
                              واقعا نمی دونم چطور از زحماتتون برای نوشتن و تلف شدن وقتتون بابت نوشتن کد تشکر کنم.
                              [FONT=Times New Roman][SIZE=3][COLOR=#000000] [/COLOR][/SIZE][/FONT][CENTER][COLOR=#800080] [/COLOR][/CENTER][COLOR=#800080] [/COLOR][CENTER][COLOR=#800080]گاهی شاپرکی را از تار عنکبوت می گیری ،[/COLOR][/CENTER][COLOR=#800080] [/COLOR][CENTER][COLOR=#800080] خیلی آرام ...[/COLOR][/CENTER][COLOR=#800080] [/COLOR][CENTER][COLOR=#800080]تا رهایش کنی ؛[/COLOR][/CENTER][COLOR=#800080] [/COLOR][CENTER][COLOR=#800080] شاپرک میان دستانت له می شود ...[/COLOR][/CENTER][COLOR=#800080] [/COLOR][CENTER][COLOR=#800080]نیت ِ تو کجا[/COLOR][/CENTER][COLOR=#800080] [/COLOR][CENTER][COLOR=#800080] و سرنوشت او کجا ...[/COLOR][/CENTER][COLOR=#800080] [/COLOR][CENTER][COLOR=#800080] [/COLOR][/CENTER]

                              کامنت

                              چند لحظه..