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

اگر فرمولی در یک کاربرگ دارید و سلولی که فرمول به آن ارجاع می دهد خالی است، فرمول همچنان مقدار صفر را برمی گرداند. به عنوان مثال، اگر فرمول =A3 را دارید، فرمول محتویات سلول A3 را برمی گرداند، مگر اینکه سلول A3 خالی باشد. در این صورت فرمول مقدار صفر را برمی گرداند.

به نظر می رسد که این به این ایده مربوط می شود که زمانی که "خالی" مترادف با "خالی" استفاده می شود، غیرممکن است که یک فرمول یک مقدار خالی را برگرداند. با این حال، می توانید فرمول خود را کمی گسترش دهید تا یک رشته خالی برگرداند. به جای استفاده از =A3 به عنوان فرمول خود، از فرمول زیر استفاده کنید:

=IF(ISBLANK(A3),"",A3)

این فرمول از ISBLANK استفاده می کند که بسته به اینکه سلول ارجاع شده (A3) خالی باشد یا نه، True یا False را برمی گرداند. سپس تابع IF اگر A3 خالی باشد یک رشته خالی ("") برمی گرداند، یا اگر A3 خالی نباشد از مقدار A3 استفاده می کند.

صرف نظر از اینکه فرمول چه چیزی را برمی گرداند، همچنان می توانید از نتیجه آن در فرمول های دیگر استفاده کنید و به خوبی کار خواهد کرد. حتی اگر یک رشته خالی برگرداند، باز هم توسط فرمول های دیگر به گونه ای رفتار می شود که گویی حاوی صفر است. در مناطقی که ممکن است با سلول به گونه ای که گویی حاوی صفر است مشکل ساز باشد (مانند زمانی که نتایج فرمول را ترسیم می کنید)، می توانید فرمول را کمی تغییر دهید، همانطور که در اینجا نشان داده شده است:

=IF(ISBLANK(A3),NA(),A3)

اگر A3 خالی باشد، این فرمول خطای #N/A را برمی گرداند. این خطا از طریق فرمول های دیگری که به فرمول ارجاع می دهند منتشر می شود، اما خطای #N/A به طور کامل در هنگام ترسیم نمودار نادیده گرفته می شود.

در حالی که راه حل های بالا برای اکثر افراد رضایت بخش است، برخی از افراد واقعاً دوست دارند که اگر سلول منبع خالی باشد، یک سلول هدف واقعاً خالی باشد. به عنوان مثال، اگر سلول A3 خالی است، ممکن است بخواهید سلول B7 خالی باشد. اگر فرمولی را در سلول B7 قرار دهید (همانطور که قبلاً بحث شد)، سلول B7 واقعاً خالی نیست - حاوی یک فرمول است.

اگر هدف شما این است - "خالی بودن" واقعی - پس فقط با استفاده از یک کلان می توانید به آن دست یابید. ماکرو باید بررسی کند که آیا سلول منبع تغییر کرده است یا خیر. اگر چنین بود، پس هر آنچه در منبع است باید در سلول هدف کپی شود.

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    Dim rMonitor As Range
    Dim rTarget As Range

    Set rMonitor = Range("A3")
    Set rTarget = Range("B7")

    If Not Intersect(Target, rMonitor) Is Nothing Then
        rMonitor.Copy rTarget
    End If

    Set rMonitor = Nothing
    Set rTarget = Nothing
End Sub
اگر خواستی، با این لینک از ما حمایت کن

پاسخ شما

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

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

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

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

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

23.2k سوال

8.5k پاسخ

608 دیدگاه

9.7k کاربر

123 نفر آنلاین
0 عضو و 123 مهمان در سایت حاضرند
بازدید امروز: 333
بازدید دیروز: 19586
بازدید کل: 15292782
...