عملیات ریاضی روی سلول های که دارای فرمت text شده اند

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

    • 2017/01/02
    • 48

    [حل شده] عملیات ریاضی روی سلول های که دارای فرمت text شده اند

    سلام من چندین فایل دارم که دارای داده های زیادی هستند ولی متاسفانه فزمت سلول های این داده ها تبدیل به متن شده است (text). حالا من نیاز دارم که روی این داده ها عملیات مختلف ریاضی از قبیل sum و میانگین و ... را انجام بدهم می خواستم بدونم راهی هست بدون اینکه فرمت سلول ها را بخواهیم تغییر دهیم با فرمول نویسی این عملیات ها را انجام دهیم. مثلا در کد زیر از تابع value استفاده کردم ولی وقتی که از علامت ( : ) استفاده می کنم خطا می دهد ولی از علامت ( ; ) استفاده می کنم برای دو سلول مختلف این کار را انجام می دهد

    فرمول زیر درست عمل می کند وجمع سلول های D2 و D1000 را محاسبه می کند و نشان می دهد
    SUM((VALUE(D2));(VALUE(D1000)))
    اما فرمول زیر که ; تبدیل به : شده است عمل نمی کند و خطا می دهد
    SUM((VALUE(D2)) : VALUE(D1000)))
    لطفا راهنمایی کنید
    Last edited by sanjesh_88; 2017/01/04, 13:22.
  • amir_ts

    • 2015/03/17
    • 1247

    #2
    با سلام
    نمیدونم اصلاح فرمول راه حل مشکل شما هست یا نه ولی در این موارد باید از تابع indirect استفاده کنید.نیازی هم به تابع value ندارید ولی باید بدونید خروجی تابع value عدد هست که ردیف محسوب میشه و با توجه به اعداد محدوده ردیف ها جمع میشوند.
    برای رسیدن به نتیجه فایل نمونه قرار بدید و نتیجه مورد انتظار رو توضیح بدید.
    کد PHP:
    =SUM(INDIRECT(L5&":"&L21)) 
    [SIZE=7][B][COLOR=navy][FONT=IranNastaliq]ای برادر تو همه اندیشه ای[/FONT][/COLOR][/B][/SIZE]

    کامنت

    • sanjesh_88

      • 2017/01/02
      • 48

      #3
      سلام
      کلا کاری که من می خواهم انجام دهم و چند روز است که وقت بنده را گرفته است به شرح زیر است:
      من یک فایل دارم که دارای تعداد زیادی عدد است و به این فایل ها هر روز یک سطر اضافه می شود
      من می خواهم کمترین مقدار 10 روز آخر در فایل 1 را حساب کنم و نتیجه در فایل 2 نشان داده شود مثلا اگر امروز 68 تا سطر داریم برای ما کمترین مقدار در ستون B را از سطر 59 تا 68 حساب کند و فردا که یک ردیف به این سطرها اضافه شد دوباره بیاد کمترین مقدار را از سطر 60 تا 69 حساب کند و الی آخر
      البته دیروز یکی از دوستان دستور زیر را پیشنهاد کرد
      MIN(OFFSET(A1;COUNT(A:A)-1;0;-10;1))
      که این دستور برای عملیات در داخل همان فایل خوب است ولی بنده می خواهم فرمول نویسی و نتایج در داخل فایل 2 انجام و نشان داده شود و فایل 1 تنها به عنوان بانک اطلاعاتی عمل می کند (چون فایل شماره 1 هر روز با فایل دیگری با همان اسم و با همان ویژگی های فایل شماره 1 عوض می شود و تنها فرق نسخه قدیم و نسخه ی آپدیت شده اضافه شدن یک سطر جدید است به همین دلیل اگر در فایل شماره 1 فرمول نویسی انجام دهیم با عوض شدن فایل تمام فرمول ها از بین می رود)
      مشکل دیگر این است فرمت سلول ها تبدیل به text شده است که انجام هر گونه عملیات ریاضی را دشوار می کند و باید به فرمت عددی تبدیل شود که کاری وقت گیر است
      ارگ بنده را از کمک کنید خیلی ممون می شوم چند روز است وقتم را گفته است
      فایل های پیوست شده

      کامنت

      • iranweld

        • 2015/03/29
        • 3341

        #4
        برای تبدیل تکست به نامبر فایل اول شما

        کد PHP:
        Sub test()

        For 
        Each cell In ActiveSheet.UsedRange

        cell
        .Formula cell.Value

        Next


        End Sub 
        فایل های پیوست شده

        کامنت

        • amir_ts

          • 2015/03/17
          • 1247

          #5
          فرمت عددی تبدیل شود که کاری وقت گیر است
          خیر با انتخاب همه و از قسمت هشدار یک سلول تمامی با یک کلیک به number تبدیل میشوند.
          فرمت رو به number تغییر بدید.
          Click image for larger version

Name:	12.png
Views:	1
Size:	15.6 کیلو بایت
ID:	131470
          فایل های پیوست شده
          [SIZE=7][B][COLOR=navy][FONT=IranNastaliq]ای برادر تو همه اندیشه ای[/FONT][/COLOR][/B][/SIZE]

          کامنت

          • sanjesh_88

            • 2017/01/02
            • 48

            #6
            سلام
            خیلی خیلی لطف کردید . نمی دونید چند روز دنبال این کار بودم
            البته فرمول شما یک ایراد کوچکی داشت و آن این بود که فقط روی 10 ردیف آخر عمل می کرد و اگر سطر جدیدی ایجاد میشد اون سطر را در نظر نمی گرفت و کلا روی همان 10 سطری اول ثابت شده بود که البته به صورت زیر اصلاح شد
            MIN(OFFSET('1.xls'!$B$1;COUNTA('1.xls'!B:B)-1;0;-10;-1))
            باز هم ممنون

            کامنت

            • sanjesh_88

              • 2017/01/02
              • 48

              #7
              نوشته اصلی توسط iranweld
              برای تبدیل تکست به نامبر فایل اول شما

              کد PHP:
              sub test()

              for 
              each cell in activesheet.usedrange

              cell
              .formula cell.value

              next


              end sub 
              سلام لطف کردید
              این کد خیلی خوبی است ولی همانطور که گفتم نمی خوام داخل فایل شماره 1 کد یا ماکرو نوشته شود چون فایل شماره 1 هر روز عوض می شود یعنی یک فایلی با همین نام جای اون فایل رو می گیرد و اون فایل اولی حذف می شود و فرمول های داخل آن نیز حذف خواهد شد . اگر میشد این دستور در فایل شماره 2 نوشت که داده ها فایل شماره 1 را تبدیل کند عالی میشد[/quote]

              کامنت

              • amir_ts

                • 2015/03/17
                • 1247

                #8
                لطفا مسئله که حل شد گزینه حل شده را بزنید.
                البته فرمول شما یک ایراد کوچکی داشت و آن این بود که فقط روی 10 ردیف آخر عمل می کرد و اگر سطر جدیدی ایجاد میشد اون سطر را در نظر نمی گرفت و کلا روی همان 10 سطری اول ثابت شده بود که البته به صورت زیر اصلاح شد
                امتحان کنید اینطور نیست.
                کد PHP:
                =MIN(OFFSET('1.xls'!$B$2;COUNTA('1.xls'!$B$2:$B$1000)-10;0;10;1)) 
                [SIZE=7][B][COLOR=navy][FONT=IranNastaliq]ای برادر تو همه اندیشه ای[/FONT][/COLOR][/B][/SIZE]

                کامنت

                چند لحظه..