ایجاد سوال
dark_mode
0 دوستدار 0 امتیاز منفی
19 visibility
موضوع: آفیس توسط:

Srinivas داده هایی در هر دو ستون A و B دارد. او باید مقادیر ستون B را که قالب سلول های مربوطه در ستون A زرد است، جمع کند. به عنوان مثال، اگر قالب در سلول A17 زرد است، مقدار سلول B17 باید در مجموع لحاظ شود.

ماکروهای متعددی در اینترنت (از جمله در ExcelTips) موجود است که به شما امکان می دهد جمع بندی شرطی را بر اساس رنگ یا فرمت های دیگر سلول انجام دهید. با این حال، این نیاز متفاوت است، زیرا رنگ سلول مورد بحث نیست، بلکه رنگ سلول یک ستون در سمت چپ است. همانطور که در اینجا نشان داده شده است، هنوز هم می توان با استفاده از یک ماکرو این کار را انجام داد:

Function SumNextYellow(ByVal r As Range)
    Dim c As Range
    Dim a As Double

    For Each c In r
        If c.Offset(0, -1).Interior.ColorIndex = 6 Then Yellow
            a = a + c.Value
        End If
    Next c
    SumNextYellow = a
End Function

تابع را می توان در فرمول کاربرگ استفاده کرد و مرجع محدوده را به عنوان آرگومان می پذیرد. سپس از هر سلول در محدوده عبور می کند، و اگر سلول سمت چپ زرد باشد، مقدار در مجموع گنجانده می شود. (باید توجه داشته باشید که ColorIndex مورد استفاده در ماکرو باید با نسخه اکسل شما آزمایش شود تا از کاربردی بودن آن مطمئن شوید؛ ممکن است در نسخه های مختلف متفاوت باشد.)

یک مثال بسیار قوی تر در فهرست زیر نشان داده شده است. این تابع یک یا چند محدوده سلول را به همراه آرگومان می پذیرد که نمونه ای از قالب بندی را که می خواهید استفاده کنید را نشان می دهد.

Function ColorConditionSum(cSample As Excel.Range, rng As Excel.Range)
 This Function returns sum of values in rng.Columns(2) if
 corresponding cell in rng.Columns(1) is colored with sample
 color (cSample cell)

 Arguments: cSample = cell colored by sample color
            rng = cell range to be processed (2 columns)

    Dim rngCol2 As Excel.Range
    Dim rngConstants As Excel.Range
    Dim rngFormulas As Excel.Range
    Dim lColorIndex As Long
    Dim MySum As Double
    Dim area As Excel.Range
    Dim c As Excel.Range

    ColorConditionSum = False
    If Not TypeOf cSample Is Excel.Range Then Exit Function >>>
    lColorIndex = cSample.Interior.ColorIndex

    MySum = 0
    Set rngCol2 = Nothing
    If TypeOf rng Is Excel.Range Then
        If rng.Columns.Count < 2 Then Exit Function >>>
        On Error Resume Next
        For Each area In rng.Areas
            If rngCol2 Is Nothing Then
                Set rngCol2 = area.Columns(2).SpecialCells(xlCellTypeConstants, 1)
                If rngCol2 Is Nothing Then
                    Set rngCol2 = area.Columns(2).SpecialCells(xlCellTypeFormulas, 1)
                Else
                    Set rngCol2 = Application.Union( _
                        rngCol2, area.Columns(2).SpecialCells(xlCellTypeFormulas, 1))
                End If
            Else
                Set rngCol2 = Application.Union( _
                    rngCol2, area.Columns(2).SpecialCells(xlCellTypeConstants, 1))
                Set rngCol2 = Application.Union( _
                    rngCol2, area.Columns(2).SpecialCells(xlCellTypeFormulas, 1))
            End If
        Next area

        For Each area In rngCol2.Areas
            For Each c In area.Cells
                With c.Offset(0, -1)
                    If .Interior.ColorIndex = lColorIndex Then
                        MySum = MySum + c.Value
                    End If
                End With
            Next c
        Next area
    End If

    ColorConditionSum = MySum
End Function

شما از این تابع به روش زیر در یک کاربرگ استفاده می کنید:

=ColorConditionSum(A10, A12:B22)

در این مورد، A10 سلولی است که دارای رنگ داخلی است که می خواهید مطابقت داشته باشد و A12:B22 محدوده سلول هایی است که باید ارزیابی شوند. مقادیر از ستون دوم در محدوده برداشته شده و قالب بندی در سلول های ستون اول بررسی می شود.

اگر خواستی، با این لینک از ما حمایت کن

پاسخ شما

looks_5نام شما برای نمایش - اختیاری
حریم شخصی : آدرس ایمیل شما محفوظ میماند و برای استفاده های تجاری و تبلیغاتی به کار نمی رود
عدد چهار رقمی در تصویر را وارد کنید

برای جلوگیری از این تایید در آینده, لطفا وارد شده یا ثبت نام کنید.
اگر حساب گوگل دارید به راحتی وارید شوید

0 پاسخ وجود دارد

سوالات مشابه

برای دسترسی راحت به مطالب سایت ، اپلیکیشن سایت را نصب کنید
و لطفا بعد از نصب امتیاز دهید. با تشکر از حمایت شما
0 دوستدار 0 امتیاز منفی
0 پاسخ 38 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 30 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 43 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 49 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 39 visibility

24.3k سوال

9.6k پاسخ

614 دیدگاه

11.2k کاربر

233 نفر آنلاین
1 عضو و 232 مهمان در سایت حاضرند
اعضای حاضر در سایت
بازدید امروز: 16638
بازدید دیروز: 17853
بازدید کل: 20328821
...