मुख्य सामग्री पर जाएं

एक्सेल में दिए गए योग के बराबर सभी संयोजन कैसे खोजें?

लेखक: ज़ियाओयांग अंतिम संशोधित: 2024-02-29

किसी सूची के भीतर संख्याओं के सभी संभावित संयोजनों की खोज करना जो एक विशिष्ट योग में जुड़ते हैं, एक चुनौती है जिसका कई एक्सेल उपयोगकर्ताओं को सामना करना पड़ सकता है, चाहे बजटिंग, योजना या डेटा विश्लेषण उद्देश्यों के लिए।

इस उदाहरण में, हमारे पास संख्याओं की एक सूची है, और उद्देश्य यह पहचानना है कि इस सूची में से कौन से संयोजनों का योग 480 तक है। प्रदान किया गया स्क्रीनशॉट दर्शाता है कि संयोजनों के पांच संभावित समूह हैं जो इस योग को प्राप्त करते हैं, जिसमें 300+120 जैसे संयोजन शामिल हैं। +60, 250+120+60+50, सहित अन्य। इस लेख में, हम किसी सूची के भीतर संख्याओं के विशिष्ट संयोजनों को इंगित करने के लिए विभिन्न तरीकों का पता लगाएंगे जो एक्सेल में निर्दिष्ट मान को जोड़ते हैं।

सॉल्वर फ़ंक्शन के साथ दिए गए योग के बराबर संख्याओं का संयोजन खोजें

किसी दिए गए योग के बराबर संख्याओं के सभी संयोजन प्राप्त करें

VBA कोड के साथ किसी श्रेणी में योग वाले संख्याओं के सभी संयोजन प्राप्त करें


सॉल्वर फ़ंक्शन के साथ दिए गए योग के बराबर सेल संयोजन ढूंढें

किसी विशिष्ट संख्या को जोड़ने वाले सेल संयोजनों को खोजने के लिए एक्सेल में गोता लगाना कठिन लग सकता है, लेकिन सॉल्वर ऐड-इन इसे आसान बना देता है। हम आपको सॉल्वर स्थापित करने और सेलों का सही संयोजन खोजने के सरल चरणों के बारे में बताएंगे, जिससे एक जटिल कार्य को सरल और संभव बनाया जा सकेगा।

चरण 1: सॉल्वर ऐड-इन सक्षम करें

  1. जाने के लिए कृपया पट्टिका > ऑप्शंस, में एक्सेल विकल्प संवाद बॉक्स पर क्लिक करें जोड़ें इन बाएँ फलक से, फिर, क्लिक करें Go बटन। स्क्रीनशॉट देखें:
  2. फिर जोड़ें इन संवाद प्रकट होता है, जाँचें सॉल्वर ऐड-इन विकल्प, और क्लिक करें OK इस ऐड-इन को सफलतापूर्वक स्थापित करने के लिए।

चरण 2: सूत्र दर्ज करें

सॉल्वर ऐड-इन को सक्रिय करने के बाद, आपको इस सूत्र को सेल B11 में दर्ज करना होगा:

=SUMPRODUCT(B2:B10,A2:A10)
नोट: इस सूत्र में: B2: B10 आपकी संख्या सूची के बगल में रिक्त कक्षों का एक स्तंभ है, और A2: A10 वह संख्या सूची है जिसका आप उपयोग करते हैं.

चरण 3: परिणाम प्राप्त करने के लिए सॉल्वर को कॉन्फ़िगर करें और चलाएं

  1. क्लिक करें जानकारी > सॉल्वर पर जाने के लिए सॉल्वर पैरामीटर संवाद बॉक्स, संवाद में, कृपया निम्नलिखित कार्य करें:
    • (1.) क्लिक करें सेल का चयन करने के लिए बटन B11 जहां से आपका सूत्र स्थित है उद्देश्य निर्धारित करें अनुभाग;
    • (2.) फिर में सेवा मेरे अनुभाग चुनें का मूल्य, और अपना लक्ष्य मान दर्ज करें 480 जैसी तुम्हारी ज़रूरत है;
    • (3.)के अंतर्गत परिवर्तनीय कोशिकाओं को बदलकर अनुभाग, कृपया क्लिक करें सेल रेंज का चयन करने के लिए बटन B2: B10 जहां आपके संबंधित नंबर अंकित होंगे।
    • (4.) फिर, क्लिक करें बटन.
  2. फिर, ए बाधा जोड़ें डायलॉग बॉक्स प्रदर्शित होता है, क्लिक करें सेल रेंज का चयन करने के लिए बटन B2: B10, और चुनें बिन ड्रॉप डाउन सूची से. अंत में क्लिक करें OK बटन। स्क्रीनशॉट देखें:
  3. में सॉल्वर पैरामीटर संवाद, क्लिक करें का समाधान बटन, कुछ मिनट बाद, ए सॉल्वर परिणाम संवाद बॉक्स पॉप आउट हो गया है, और आप उन कोशिकाओं का संयोजन देख सकते हैं जो दिए गए योग 480 के बराबर हैं, जिन्हें कॉलम बी में 1 के रूप में चिह्नित किया गया है। सॉल्वर परिणाम संवाद, कृपया चयन करें सॉल्वर सॉल्यूशन रखें विकल्प, और क्लिक करें OK संवाद से बाहर निकलने के लिए. स्क्रीनशॉट देखें:
नोट: हालाँकि, इस पद्धति की एक सीमा है: यह केवल उन कोशिकाओं के एक संयोजन की पहचान कर सकती है जो निर्दिष्ट योग तक जुड़ते हैं, भले ही कई वैध संयोजन मौजूद हों।

किसी दिए गए योग के बराबर संख्याओं के सभी संयोजन प्राप्त करें

एक्सेल की गहन क्षमताओं की खोज से आप प्रत्येक संख्या संयोजन को ढूंढ सकते हैं जो एक विशिष्ट योग से मेल खाता है, और यह जितना आप सोच सकते हैं उससे कहीं अधिक आसान है। यह अनुभाग आपको किसी दिए गए योग के बराबर संख्याओं के सभी संयोजनों को खोजने के लिए दो तरीके दिखाएगा।

उपयोगकर्ता परिभाषित फ़ंक्शन के साथ दिए गए योग के बराबर संख्याओं के सभी संयोजन प्राप्त करें

किसी विशिष्ट सेट से संख्याओं के हर संभावित संयोजन को उजागर करने के लिए जो सामूहिक रूप से किसी दिए गए मान तक पहुंचता है, नीचे उल्लिखित कस्टम फ़ंक्शन एक प्रभावी उपकरण के रूप में कार्य करता है।

चरण 1: वीबीए मॉड्यूल संपादक खोलें और कोड कॉपी करें

  1. नीचे पकड़ो ALT + F11 एक्सेल में कुंजियाँ, और यह खुलता है अनुप्रयोगों के लिए माइक्रोसॉफ्ट विज़ुअल बेसिक खिड़की.
  2. क्लिक करें सम्मिलित करें > मॉड्यूल, और मॉड्यूल विंडो में निम्नलिखित कोड पेस्ट करें।
    वीबीए कोड: किसी दिए गए योग के बराबर संख्याओं के सभी संयोजन प्राप्त करें
    Public Function MakeupANumber(xNumbers As Range, xCount As Long)
    'updateby Extendoffice
        Dim arrNumbers() As Long
        Dim arrRes() As String
        Dim ArrTemp() As Long
        Dim xIndex As Long
        Dim rg As Range
    
        MakeupANumber = ""
        
        If xNumbers.CountLarge = 0 Then Exit Function
        ReDim arrNumbers(xNumbers.CountLarge - 1)
        
        xIndex = 0
        For Each rg In xNumbers
            If IsNumeric(rg.Value) Then
                arrNumbers(xIndex) = CLng(rg.Value)
                xIndex = xIndex + 1
            End If
        Next rg
        If xIndex = 0 Then Exit Function
        
        ReDim Preserve arrNumbers(0 To xIndex - 1)
        ReDim arrRes(0)
        
        Call Combinations(arrNumbers, xCount, ArrTemp(), arrRes())
        ReDim Preserve arrRes(0 To UBound(arrRes) - 1)
        MakeupANumber = arrRes
    End Function
    
    Private Sub Combinations(Numbers() As Long, Count As Long, ArrTemp() As Long, ByRef arrRes() As String)
    
        Dim currentSum As Long, i As Long, j As Long, k As Long, num As Long, indRes As Long
        Dim remainingNumbers() As Long, newCombination() As Long
        
        currentSum = 0
        If (Not Not ArrTemp) <> 0 Then
            For i = LBound(ArrTemp) To UBound(ArrTemp)
                currentSum = currentSum + ArrTemp(i)
            Next i
        End If
     
        If currentSum = Count Then
            indRes = UBound(arrRes)
            ReDim Preserve arrRes(0 To indRes + 1)
            
            arrRes(indRes) = ArrTemp(0)
            For i = LBound(ArrTemp) + 1 To UBound(ArrTemp)
                arrRes(indRes) = arrRes(indRes) & "," & ArrTemp(i)
            Next i
        End If
        
        If currentSum > Count Then Exit Sub
        If (Not Not Numbers) = 0 Then Exit Sub
        
        For i = 0 To UBound(Numbers)
            Erase remainingNumbers()
            num = Numbers(i)
            For j = i + 1 To UBound(Numbers)
                If (Not Not remainingNumbers) <> 0 Then
                    ReDim Preserve remainingNumbers(0 To UBound(remainingNumbers) + 1)
                Else
                    ReDim Preserve remainingNumbers(0 To 0)
                End If
                remainingNumbers(UBound(remainingNumbers)) = Numbers(j)
                
            Next j
            Erase newCombination()
    
            If (Not Not ArrTemp) <> 0 Then
                For k = 0 To UBound(ArrTemp)
                    If (Not Not newCombination) <> 0 Then
                        ReDim Preserve newCombination(0 To UBound(newCombination) + 1)
                    Else
                        ReDim Preserve newCombination(0 To 0)
                    End If
                    newCombination(UBound(newCombination)) = ArrTemp(k)
    
                Next k
            End If
            
            If (Not Not newCombination) <> 0 Then
                ReDim Preserve newCombination(0 To UBound(newCombination) + 1)
            Else
                ReDim Preserve newCombination(0 To 0)
            End If
            
            newCombination(UBound(newCombination)) = num
    
            Combinations remainingNumbers, Count, newCombination, arrRes
        Next i
    
    End Sub
    

चरण 2: परिणाम प्राप्त करने के लिए कस्टम फॉर्मूला दर्ज करें

कोड पेस्ट करने के बाद, वर्कशीट पर वापस जाने के लिए कोड विंडो बंद करें। परिणाम आउटपुट करने के लिए एक रिक्त सेल में निम्नलिखित सूत्र दर्ज करें, और फिर दबाएँ दर्ज सभी संयोजन प्राप्त करने की कुंजी. स्क्रीनशॉट देखें:

=MakeupANumber(A2:A10,B2)
नोट: इस सूत्र में: A2: A10 संख्या सूची है, और B2 वह कुल राशि है जो आप प्राप्त करना चाहते हैं.

टिप: यदि आप संयोजन परिणामों को किसी कॉलम में लंबवत रूप से सूचीबद्ध करना चाहते हैं, तो कृपया निम्नलिखित सूत्र लागू करें:
=TRANSPOSE(MakeupANumber(A2:A10,B2))
इस विधि की सीमाएँ:
  • यह कस्टम फ़ंक्शन केवल Excel 365 और 2021 में काम करता है।
  • यह विधि विशेष रूप से सकारात्मक संख्याओं के लिए प्रभावी है; दशमलव मान स्वचालित रूप से निकटतम पूर्णांक में पूर्णांकित हो जाते हैं, और नकारात्मक संख्याओं के परिणामस्वरूप त्रुटियाँ होंगी।

एक शक्तिशाली सुविधा के साथ किसी दिए गए योग के बराबर संख्याओं के सभी संयोजन प्राप्त करें

उपर्युक्त फ़ंक्शन की सीमाओं को देखते हुए, हम एक तेज़ और व्यापक समाधान की अनुशंसा करते हैं: एक्सेल के मेक अप ए नंबर फीचर के लिए कुटूल, जो एक्सेल के किसी भी संस्करण के साथ संगत है। यह विकल्प सकारात्मक संख्याओं, दशमलवों और ऋणात्मक संख्याओं को प्रभावी ढंग से संभाल सकता है। इस सुविधा के साथ, आप किसी दिए गए योग के बराबर सभी संयोजन तुरंत प्राप्त कर सकते हैं।

टिप्स: इसे लागू करने के लिए एक नंबर बनाओ फीचर, सबसे पहले, आपको डाउनलोड करना चाहिए एक्सेल के लिए कुटूल, और फिर सुविधा को जल्दी और आसानी से लागू करें।
  1. क्लिक करें कुटूल > सामग्री > एक नंबर बनाओ, स्क्रीनशॉट देखें:
  2. फिर, में एक संख्या बनाओ संवाद बॉक्स, कृपया क्लिक करें उस नंबर सूची का चयन करने के लिए बटन जिसे आप उपयोग करना चाहते हैं डेटा स्रोत, और फिर कुल संख्या दर्ज करें राशि पाठ बॉक्स। अंत में क्लिक करें OK बटन, स्क्रीनशॉट देखें:
  3. और फिर, परिणाम का पता लगाने के लिए एक सेल का चयन करने की याद दिलाने के लिए एक प्रॉम्प्ट बॉक्स पॉप आउट हो जाएगा, फिर क्लिक करें OK, स्क्रीनशॉट देखें:
  4. और अब, उस दिए गए नंबर के बराबर सभी संयोजन नीचे दिखाए गए स्क्रीनशॉट के अनुसार प्रदर्शित किए गए हैं:
नोट: कृपया इस सुविधा को लागू करने के लिए एक्सेल के लिए कुटूल डाउनलोड और इंस्टॉल करें पहले।

VBA कोड के साथ किसी श्रेणी में योग वाले संख्याओं के सभी संयोजन प्राप्त करें

कभी-कभी, आप स्वयं को ऐसी स्थिति में पा सकते हैं जहां आपको संख्याओं के सभी संभावित संयोजनों की पहचान करने की आवश्यकता होती है जो सामूहिक रूप से एक विशिष्ट सीमा के भीतर योग बनाते हैं। उदाहरण के लिए, आप संख्याओं के हर संभावित समूह को ढूंढना चाह रहे होंगे जहां कुल 470 और 480 के बीच आता है।

एक विशिष्ट सीमा के भीतर एक मान तक पहुंचने वाली संख्याओं के सभी संभावित संयोजनों की खोज करना एक्सेल में एक आकर्षक और अत्यधिक व्यावहारिक चुनौती का प्रतिनिधित्व करता है। यह अनुभाग इस कार्य को हल करने के लिए एक VBA कोड पेश करेगा।

चरण 1: वीबीए मॉड्यूल संपादक खोलें और कोड कॉपी करें

  1. नीचे पकड़ो ALT + F11 एक्सेल में कुंजियाँ, और यह खुलता है अनुप्रयोगों के लिए माइक्रोसॉफ्ट विज़ुअल बेसिक खिड़की.
  2. क्लिक करें सम्मिलित करें > मॉड्यूल, और मॉड्यूल विंडो में निम्नलिखित कोड पेस्ट करें।
    वीबीए कोड: संख्याओं के सभी संयोजन प्राप्त करें जिनका योग एक विशिष्ट श्रेणी तक हो
    Sub Getall_combinations()
    'Updateby Extendoffice
        Dim xNumbers As Variant
        Dim Output As Collection
        Dim rngSelection As Range
        Dim OutputCell As Range
        Dim LowLimit As Long, HiLimit As Long
        Dim i As Long, j As Long
        Dim TotalCombinations As Long
        Dim CombTotal As Double
        Set Output = New Collection
        On Error Resume Next
        Set rngSelection = Application.InputBox("Select the range of numbers:", "Kutools for Excel", Type:=8)
        If rngSelection Is Nothing Then
            MsgBox "No range selected. Exiting macro.", vbInformation, "Kutools for Excel"
            Exit Sub
        End If
        On Error GoTo 0
        xNumbers = rngSelection.Value
        LowLimit = Application.InputBox("Select or enter the low limit number:", "Kutools for Excel", Type:=1)
        HiLimit = Application.InputBox("Select or enter the high limit number:", "Kutools for Excel", Type:=1)
        On Error Resume Next
        Set OutputCell = Application.InputBox("Select the first cell for output:", "Kutools for Excel", Type:=8)
        If OutputCell Is Nothing Then
            MsgBox "No output cell selected. Exiting macro.", vbInformation, "Kutools for Excel"
            Exit Sub
        End If
        On Error GoTo 0
        TotalCombinations = 2 ^ (UBound(xNumbers, 1) * UBound(xNumbers, 2))
        For i = 1 To TotalCombinations - 1
            Dim tempArr() As Double
            ReDim tempArr(1 To UBound(xNumbers, 1) * UBound(xNumbers, 2))
            CombTotal = 0
            Dim k As Long: k = 0
            
            For j = 1 To UBound(xNumbers, 1)
                If i And (2 ^ (j - 1)) Then
                    k = k + 1
                    tempArr(k) = xNumbers(j, 1)
                    CombTotal = CombTotal + xNumbers(j, 1)
                End If
            Next j
            If CombTotal >= LowLimit And CombTotal <= HiLimit Then
                ReDim Preserve tempArr(1 To k)
                Output.Add tempArr
            End If
        Next i
        Dim rowOffset As Long
        rowOffset = 0
        Dim item As Variant
        For Each item In Output
            For j = 1 To UBound(item)
                OutputCell.Offset(rowOffset, j - 1).Value = item(j)
            Next j
            rowOffset = rowOffset + 1
        Next item
    End Sub
    
    
    

चरण 2: कोड निष्पादित करें

  1. कोड पेस्ट करने के बाद प्रेस करें F5 इस कोड को चलाने के लिए कुंजी, पहले पॉप आउट संवाद में, उन संख्याओं की श्रेणी का चयन करें जिनका आप उपयोग करना चाहते हैं, और क्लिक करें OK. स्क्रीनशॉट देखें:
  2. दूसरे प्रॉम्प्ट बॉक्स में, निम्न सीमा संख्या चुनें या टाइप करें, और क्लिक करें OK. स्क्रीनशॉट देखें:
  3. तीसरे प्रॉम्प्ट बॉक्स में, उच्च सीमा संख्या चुनें या टाइप करें, और क्लिक करें OK. स्क्रीनशॉट देखें:
  4. अंतिम प्रॉम्प्ट बॉक्स में, एक आउटपुट सेल चुनें, जहां से परिणाम आउटपुट होना शुरू हो जाएंगे। तब दबायें OK. स्क्रीनशॉट देखें:

परिणाम

अब, प्रत्येक क्वालीफाइंग संयोजन आपके द्वारा चुने गए आउटपुट सेल से शुरू होकर, वर्कशीट में लगातार पंक्तियों में सूचीबद्ध किया जाएगा।

एक्सेल आपको संख्याओं के समूहों को खोजने के कई तरीके देता है जो एक निश्चित कुल में जुड़ते हैं, प्रत्येक विधि अलग-अलग काम करती है, इसलिए आप एक्सेल से कितने परिचित हैं और आपको अपने प्रोजेक्ट के लिए क्या चाहिए, इसके आधार पर आप किसी एक को चुन सकते हैं। यदि आप अधिक एक्सेल टिप्स और ट्रिक्स तलाशने में रुचि रखते हैं, तो कृपया हमारी वेबसाइट हजारों ट्यूटोरियल प्रदान करती है उन तक पहुंचने के लिए यहां क्लिक करें. पढ़ने के लिए धन्यवाद, और हम भविष्य में आपको और अधिक उपयोगी जानकारी प्रदान करने के लिए तत्पर हैं!


संबंधित आलेख:

  • सभी संभावित संयोजनों को सूचीबद्ध करें या उत्पन्न करें
  • मान लीजिए, मेरे पास डेटा के निम्नलिखित दो कॉलम हैं, और अब, मैं बाएं स्क्रीनशॉट में दिखाए गए मानों की दो सूचियों के आधार पर सभी संभावित संयोजनों की एक सूची तैयार करना चाहता हूं। हो सकता है, यदि कुछ मान हों तो आप सभी संयोजनों को एक-एक करके सूचीबद्ध कर सकते हैं, लेकिन, यदि संभावित संयोजनों को सूचीबद्ध करने के लिए एकाधिक मानों वाले कई कॉलम हैं, तो यहां कुछ त्वरित तरकीबें दी गई हैं जो एक्सेल में इस समस्या से निपटने में आपकी मदद कर सकती हैं। .
  • एकल कॉलम से सभी संभावित संयोजनों की सूची बनाएं
  • यदि आप नीचे दिखाए गए स्क्रीनशॉट के अनुसार परिणाम प्राप्त करने के लिए एकल कॉलम डेटा से सभी संभावित संयोजनों को वापस करना चाहते हैं, तो क्या आपके पास एक्सेल में इस कार्य से निपटने के लिए कोई त्वरित तरीका है?
  • 3 या एकाधिक स्तंभों के सभी संयोजन उत्पन्न करें
  • मान लीजिए, मेरे पास डेटा के 3 कॉलम हैं, अब, मैं इन 3 कॉलमों में डेटा के सभी संयोजनों को उत्पन्न या सूचीबद्ध करना चाहता हूं जैसा कि नीचे स्क्रीनशॉट में दिखाया गया है। क्या आपके पास एक्सेल में इस कार्य को हल करने के लिए कोई अच्छा तरीका है?
  • सभी संभावित 4 अंकों के संयोजनों की एक सूची तैयार करें
  • कुछ मामलों में, हमें संख्या 4 से 0 के सभी संभावित 9 अंकों के संयोजनों की एक सूची तैयार करने की आवश्यकता हो सकती है, जिसका अर्थ है 0000, 0001, 0002…9999 की सूची तैयार करना। एक्सेल में सूची कार्य को शीघ्रता से हल करने के लिए, मैं आपके लिए कुछ युक्तियाँ प्रस्तुत करता हूँ।