Excel: यदि स्थिति पूरी हो गई है तो 1 या 0 मान लिखें


1

क्षमा करें यदि यह पहले ही पोस्ट किया जा चुका है, लेकिन मैंने अभी एक्सेल मैक्रोज़ के साथ खेलना शुरू किया है और मुझे एक हाथ की आवश्यकता है। मेरे पास मानों के साथ एक डेटा कॉलम है और मैं चाहूंगा कि यदि शर्तें पूरी हुईं, तो मैक्रो 1, या 0 लौटाएगा यदि ऐसा नहीं होता है।

मैंने यह कोशिश की है लेकिन मुझे कुछ त्रुटि हो रही है।

Private Sub CommandButton1_Click()
    Dim score As Integer, result As String

    score = Range("E2:E841").Value
    If score >= 20 Then
        result = "1"
    Else
        result = "0"
    End If

    Range("F2:F841").Value = result
End Sub

वैसे, क्या एक शर्त के रूप में एक कॉलम सेट करना संभव होगा? पसंद

  • शर्त 1: कॉलम A20 से अधिक होना चाहिए
  • शर्त 2: कॉलम Bको हां कहना चाहिए
Column A      Column B        Result
   1             No             0
  20             Yes            1 
  30             No             1

यदि आप एक्सेल और मैक्रोज़ के बारे में जानने की कोशिश कर रहे हैं, तो आप इस तरह से एक दृष्टिकोण का उपयोग कर सकते हैं। हालाँकि, एक्सेल परीक्षण के अलावा कुछ नहीं करता है। उदाहरण के लिए, सेल A1 को "हां" कहना चाहिए: A1 = "हां" को 1 के रूप में माना जाएगा यदि सच है या 0 यदि गलत है। यदि आप वास्तविक मूल्य 1 या 0 चाहते हैं: (A1 = "Yes") * 1 1 या 0 परिणाम देगा। यदि आप एक सेल दिखाना चाहते हैं, तो सेल में: = (A1 = "हाँ") * 1 होगा। अन्यथा, आप इसे एक सूत्र के भाग के रूप में उपयोग कर सकते हैं।
फिक्सर 1234

(1) यदि आप कहते हैं कि "मुझे कुछ त्रुटि हो रही है तो आपको बहुत मदद नहीं मिलने वाली है। आपको यह बताने की आवश्यकता है कि क्या हो रहा है।" (2) "> = 20" और "20 से अधिक" का मतलब एक ही बात नहीं है। कृपया कहने का प्रयास करें कि आपका क्या मतलब है, ठीक है। (३) मैं आपके १/२०/३० उदाहरण के आंकड़ों से अनुमान लगाता हूं कि आप चाहते हैं कि आप शर्त १ और शर्त २ को एक साथ (यानी एक ही पंक्ति में) सही होना चाहते हैं, लेकिन आप नहीं कहते। कृपया कहने का प्रयास करें कि आपका क्या मतलब है, ठीक है। (4) जैसा कि fixer1234 कहता है, ये गणना कार्यपत्रक के कार्यों / सूत्रों के साथ आसानी से की जा सकती है। उदाहरण के लिए, AND()फ़ंक्शन पर शोध करें । … (Cont'd)
स्कॉट

(Cont'd) ... किसी विशेष, व्यावहारिक समस्या के लिए, आपको संभवतः कार्यपत्रक फ़ंक्शन / सूत्रों का उपयोग करना चाहिए यदि आप कर सकते हैं; कम से कम, अगर यह समझ से बाहर जटिल नहीं है। यदि आप VBA सीखने के लिए VBA सीखने की कोशिश कर रहे हैं, या कुछ बड़े प्रयासों के लिए तैयारी कर रहे हैं जो आपको इसकी आवश्यकता होगी, तो आपके लिए अच्छा होगा; लेकिन यह उपयोगी होगा यदि आपने ऐसा कहा। अन्यथा, यदि आप VBA रूटीन पोस्ट करते हैं जो वे कार्य करते हैं जो कार्यपत्रक फ़ंक्शंस / फ़ार्मुलों के साथ आसानी से किए जा सकते हैं, तो आप लोगों को सुझाव देने वाले हैं कि आप वर्कशीट फ़ंक्शंस / फ़ार्मुलों का उपयोग करें। … (Cont'd)
स्कॉट

... , और [vba]। बेशक, जो आप पाते हैं उसका बहुत कुछ सुस्त और उबाऊ होगा; कुछ गूढ़ और अस्पष्टीकृत होंगे; और कुछ एकमुश्त गलत होगा। आप इन लोगों द्वारा लिखे गए उत्तरों पर ध्यान केंद्रित करके सर्वोत्तम परिणाम प्राप्त कर सकते हैं ।
स्कॉट

जवाबों:


0

आइए कोड का वास्तविक विश्लेषण करें -

Dim score As Integer
score = Range("E2:E841").Value

बेमेल टाइप? या कुछ और? आप एक पूर्णांक को किसी श्रेणी के मान पर सेट नहीं कर सकते। आपको एक लूप की आवश्यकता है -

Private Sub CommandButton1_Click()
    Dim score As Range, result As String

    set score = Range("E2:E841")
    For each c in score
     If c >= 20 Then
        result = "1"
     Else
        result = "0"
     End If

     c.offset(,1) = result
    Next
End Sub
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.