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

الکس به طور معمول آخرین داده های صنعت ساختمان را تجزیه و تحلیل می کند و نیاز به نوشتن مقاله در مورد داده ها دارد. او اغلب نیاز به برجسته کردن برخی از داده های جدید دارد، مانند "ساخت و ساز ساختمان های صنعتی کمترین میزان از اوت 2019 بوده است." الکس تعجب کرد که آیا راهی برای خودکارسازی این نوع برجسته سازی وجود دارد یا خیر. اگر ستون A شامل ماه و سال و ستون B حاوی مقادیر مربوط به آن دوره ها باشد، الکس فرمولی را در ستون C می خواهد که نشان دهد "این مقدار بالاترین مقدار از آوریل 2019 است" یا "این مقدار کمترین مقدار از نوامبر 2016 است."

با فرض اینکه ماه و سال ذکر شده در ستون A واقعاً یک مقدار تاریخ اکسل (و نه متن) باشد، می توانید به راحتی فرمولی برای برگرداندن اطلاعات مورد نظر ایجاد کنید. اگر ردیف 1 را با عنوان ستون های خود اشغال کرده اید، موارد زیر را در سلول C2 وارد کنید:

=IF(ROW(B2)=2,"",IF(B2>MAX($B$1:B1), "this value is 
the highest since " & TEXT(INDEX($A$1:A1,MATCH(MAX(
$B$1:B1),$B$1:B1,0)), "mmmm yyyy"), IF(B2به یاد داشته باشید که این یک فرمول واحد است و باید همه را در یک خط وارد کنید. می توانید فرمول را به تعداد ردیف های لازم در ستون C کپی کنید و باید اطلاعات مورد نظر را ارائه کند. فقط زمانی در ستون C علامت گذاری می کند که مقدار ستون B از حداکثر یا کمتر از حداقل تمام مقادیر فوق در ستون B باشد.اگر اطلاعات کمی در کاربرگ خود دارید، می توانید متوجه شوید که فرمول منجر به زمان های طولانی محاسبه مجدد می شود. اگر چنین است، ممکن است بخواهید از یک ماکرو استفاده کنید که تجزیه و تحلیل مورد نظر را انجام دهد و اطلاعات مناسب را ارائه دهد. ماکرو زیر از طریق اطلاعات ستون B به عقب نگاه می کند و هر دو نتیجه "کمترین از زمان" و "بالاترین از آن زمان" را در ستون های C و D ارائه می دهد.Sub FindHiLow()
    Dim orig_cell As Range
    Dim orig_val As Integer
    Dim orig_row As Integer
    Dim rownum As Integer
    Dim newcell As Range
    Dim new_val As Integer
    Dim lowrow As Integer
    Dim hirow As Integer

    Set orig_cell = ActiveCell
    orig_row = ActiveCell.Row
    orig_val = orig_cell.Value

 find lowest
    lowrow = 0
    For rownum = orig_cell.Row - 1 To 1 Step -1
        Set newcell = Cells(rownum, 2)
        new_val = newcell.Value
        If orig_val >= new_val Then
            lowrow = rownum
            Exit For
        End If
    Next
    If lowrow = 0 Then lowrow = 1
    Cells(orig_row, 3).Value = "Lowest since " & Cells(lowrow, 1)

 find highest
    hirow = 0
    For rownum = orig_cell.Row - 1 To 1 Step -1
        Set newcell = Cells(rownum, 2)
        new_val = newcell.Value
        If orig_val 
اگر خواستی، با این لینک از ما حمایت کن

پاسخ شما

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

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

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

سوال مشابهی یافت نشد

برای دسترسی راحت به مطالب سایت ، اپلیکیشن سایت را نصب کنید
و لطفا بعد از نصب امتیاز دهید. با تشکر از حمایت شما

23.2k سوال

8.5k پاسخ

608 دیدگاه

9.7k کاربر

96 نفر آنلاین
0 عضو و 96 مهمان در سایت حاضرند
بازدید امروز: 3113
بازدید دیروز: 21973
بازدید کل: 15275980
...