نوشتن فرمول sumifs در vba

Collapse
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • hooman khani
    • 2014/11/18
    • 2

    نوشتن فرمول sumifs در vba

    با سلام خدمت دوستان عزیز.من قصد نوشتن برنامه محاسبه قیمت تمام شده را در اکسل دارم.در قسمت تسهیم نیاز دارم از فرمول sumifs در vba استفاده کنم.فرمول را نوشتم ولی در یک سلول جواب می گیرم.(وقتی محدوده فقط یک سلول باشه)
    Sub sumifs()
    Dim zareeb As Range
    Dim marcaz As Range
    Dim mabna As Range

    Set zareeb = Sheets("sharing").Range("d21000000")
    Set marcaz = Sheets("sharing").Range("b2:b1000000")
    Set mabna = Sheets("sharing").Range("c2:c1000000")

    Range("aa5:eb5").Formula = WorksheetFunction.sumifs(zareeb, marcaz, Range("aa2"), mabna, Range("y5")) / WorksheetFunction.sumifs(zareeb, mabna, Range("y5")) * Range("z5")

    End Sub
    وقتی محدوده سلول را افزایش می دهم (قسمت های لایت شده) جواب همه یک عدد می شه.می خوام یه فرمولی بنویسم که تومحدوده سلول های مشخص شده جواب بده.خودم فکر می کنم علت مربوط به( " range("aa2 می باشد.یعنی وقتی فرمول را در سلول ab5 لحاظ می کند باز همون aa2 رادر نظر می گیره باید ab2 را در نظر بگیرد با تشکر

  • iranweld

    • 2015/03/29
    • 3341

    #2
    با سلام
    لطفا نمونه فایل رو بفرستید،که زودتر به جواب برسید

    کامنت

    • hooman khani
      • 2014/11/18
      • 2

      #3
      فرمول sumifs در vba

      ایمیل دارید تا براتون ارسال کنم.

      کامنت

      • iranweld

        • 2015/03/29
        • 3341

        #4
        نوشته اصلی توسط hooman khani
        ایمیل دارید تا براتون ارسال کنم.
        با سلام
        از قسمت مدیریت فایلهای پیوست میتونید ارسال کنید تا سایر دوستان هم نظر بدند
        یک فایل نمونه برای شما ضمیمه کردم که بصورت دو تا شرط جمع ستون را بدست میاره
        فایل های پیوست شده

        کامنت

        • Ali Parsaei
          مدير تالارتوابع اکسل

          • 2013/11/18
          • 1522
          • 71.67

          #5
          نوشته اصلی توسط hooman khani
          خودم فکر می کنم علت مربوط به( " range("aa2 می باشد.یعنی وقتی فرمول را در سلول ab5 لحاظ می کند باز همون aa2 رادر نظر می گیره باید ab2 را در نظر بگیرد با تشکر

          درست حدس زديد، در اصل هر دو قسمتي که هايلايت کرده ايد را بايد به نحو ديگري کد نويسي کنيد و بدين نحو که نوشته ايد غلط است.
          بايد يک متغيير تعريف کنيد (مثلا" متغييري به نام C)
          سپس رنج AA5 تا EB5 را به آن متغيير نسبت دهيد و به جاي ...Range("aa5:eb5").Formula بنويسيد: ....C.Formula سپس به جاي ("range("aa2 هم بايد چيزي بنويسيد که به آن متغيير ربط پيدا کند يعني: (c.offset(-3,0 (بدين معني که به ازاي هر C در محدوده فوق خانه اي که سه سطر بالاترش است را نگاه کن) و کل ماجرا را در يک حلقه FOR قرار دهيد.


          من امتحان کردم درست شد، سعي بفرماييد، اگر باز مشکل داشتيد بفرماييد تا بيشتر کمک کنم.

          ضمنا" اگر کدهايتان را در تگ PHP قرار دهيد بهتر مي شود آنها را خواند منظورم اين است:
          Click image for larger version

Name:	1111.jpg
Views:	1
Size:	2.3 کیلو بایت
ID:	126677

          Last edited by Ali Parsaei; 2015/07/15, 19:59.
          [SIGPIC][/SIGPIC]

          کامنت

          چند لحظه..