تبدیل عدد مثبت به منفی به شرط یک کلمه مشخص

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

    • 2014/11/02
    • 1054

    [حل شده] تبدیل عدد مثبت به منفی به شرط یک کلمه مشخص

    سلام

    در نظر بگیرید در سلول a1 لیست دو گزینه دارد خرید و فروش . حالا اگر در سلول b1 یک عدد مثبت مثلا 10 وارد می کنیم

    لطفا راهنمایی بفرمایید که وقتی عملیات « فروش » انتخاب می شود عدد منفی شود

    بعبارتی عدد مثبت وارد کنیم خودکار منفی شود به شرط انتخاب فروش.

    توضیح اینکه:
    با کاندیشنال فرمتینگ میشه اما صرفا نمایش داده میشود ولی در عمل جمع و تفریق نمیشود
    با دیتا ولیدشن فکر کنم نشه ، چون فقط برای کنترل ورود داده است
    شاید با فرمت سلز امکان پذیر باشد و دیگر گزینه ها...

    خیلی ممنون
    فایل های پیوست شده
    [FONT=arial][SIZE=3]اگر کسی به شما کمک کرد، سمت راست پایین هر موضوع تیک [COLOR=#0000cd][B]«3پاس»[/B][/COLOR] یادتان نرود لطفا
    اگر مشکل تان حل شد، حتما تیک سبز رنگ [B][COLOR=#00cc00]«حل شد»[/COLOR][/B] در پست اول را بزنید
    [/SIZE][/FONT][SIZE=3][CENTER][FONT=arial]
    [/FONT][/CENTER]
    [/SIZE][FONT=arial][SIZE=3] اگر میخواهید بهتر و دقیق تر و سریع تر به شما کمک شود، یک [COLOR=#ee82ee][B]«فایل نمونه»[/B][/COLOR] قرار دهید
    فایل نمونه: حداکثر [U][COLOR=#ff0000]50 [/COLOR][/U]کیلوبایت - کوتاه، تقریبا [U][COLOR=#ff0000]10 [/COLOR][/U]سطری - به همراه جواب یا خروجی یا نتیجه مورد انتظار[/SIZE][/FONT][CENTER][FONT=arial][COLOR=#0000ff][SIZE=3][SIZE=3][SIZE=3][SIZE=3]مسیر ارسال فایل : پایین سمت چپ - تنظیمات اضافی - فایل پیوست[/SIZE][/SIZE][/SIZE] [/SIZE][/COLOR]
    [/FONT][/CENTER]
  • generalsamad
    مدير تالار توابع

    • 2014/06/22
    • 1496

    #2
    با سلام
    ببینید این کد کارتون رو راه میندازه؟
    در رویداد change شیت مورد نظر در صورت تغییر ستون B سطر متناظر تغییر می کند

    کد PHP:
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim LRAs Long
    LR 
    Cells(Rows.Count2).End(xlUp).Row
    For 2 To LR
        
    If Range("B" i) = "فروش" Then
            Range
    ("C" i) = -Abs(Range("C" i))
        Else
            
    Range("C" i) = Abs(Range("C" i))
        
    End If
    Next i
    End Sub 
    [CENTER]
    [SIGPIC][/SIGPIC]
    [/CENTER]

    کامنت

    • saed.rasa

      • 2014/11/02
      • 1054

      #3
      عالی بود! دستت درد نکنه مرسی
      [FONT=arial][SIZE=3]اگر کسی به شما کمک کرد، سمت راست پایین هر موضوع تیک [COLOR=#0000cd][B]«3پاس»[/B][/COLOR] یادتان نرود لطفا
      اگر مشکل تان حل شد، حتما تیک سبز رنگ [B][COLOR=#00cc00]«حل شد»[/COLOR][/B] در پست اول را بزنید
      [/SIZE][/FONT][SIZE=3][CENTER][FONT=arial]
      [/FONT][/CENTER]
      [/SIZE][FONT=arial][SIZE=3] اگر میخواهید بهتر و دقیق تر و سریع تر به شما کمک شود، یک [COLOR=#ee82ee][B]«فایل نمونه»[/B][/COLOR] قرار دهید
      فایل نمونه: حداکثر [U][COLOR=#ff0000]50 [/COLOR][/U]کیلوبایت - کوتاه، تقریبا [U][COLOR=#ff0000]10 [/COLOR][/U]سطری - به همراه جواب یا خروجی یا نتیجه مورد انتظار[/SIZE][/FONT][CENTER][FONT=arial][COLOR=#0000ff][SIZE=3][SIZE=3][SIZE=3][SIZE=3]مسیر ارسال فایل : پایین سمت چپ - تنظیمات اضافی - فایل پیوست[/SIZE][/SIZE][/SIZE] [/SIZE][/COLOR]
      [/FONT][/CENTER]

      کامنت

      • Amir Ghasemiyan

        • 2013/09/20
        • 4598
        • 100.00

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

        کافیه این فرمول رو بصورت آرایه ای بنویسید
        کد:
        =SUM(IF(B2:B5=B2,-1,1)*C2:C5)
        آرایه ای هم یعنی بجای زدن کلید enter از کلیدهای ترکیبی ctrl+shift+enter استفاده کنید

        و یا این فرمول ساده
        کد:
        =SUMIF(B2:B5,B3,C2:C5)-SUMIF(B2:B5,B2,C2:C6)
        این فرمول آرایه ای نیست

        کامنت

        چند لحظه..