एक ही सामग्री वाले एक ही पंक्ति के भीतर किसी भी दो या दो से अधिक कोशिकाओं के लिए कई स्तंभों की तुलना करें


3

मुझे समान सामग्री वाले एक ही पंक्ति के भीतर किसी भी दो या दो से अधिक कक्षों के लिए कई स्तंभों की तुलना करने के लिए सूत्र की आवश्यकता है। अगर यह सच है, तो "TEXT A" ("TRUE" जैसे कुछ भी हो सकता है) प्रदर्शित करें। यदि सभी मान अलग-अलग हैं, तो "TEXT B" या केवल "FALSE" प्रदर्शित करें।

मैं एक IFसूत्र का उपयोग कर रहा हूं, लेकिन यह समय लेने वाला होगा यदि तुलना करने के लिए कई कॉलम हैं, इसलिए मुझे एक बेहतर सूत्र की आवश्यकता है।

=IF((B2=C2);"YES";IF((B2=D2);"YES";IF((C2=D2);"YES";"ALL DIFFERENT")))

वही OR के साथ समान फ़ंक्शन के साथ जाता है (परिणामस्वरूप सही या गलत)

=AND(($C2<>$D2);($C2<>$E2);($D2<>$E2))

नीचे वर्कशीट का एक स्क्रीनशॉट है, जो सिर्फ एक उदाहरण है। मेरे वास्तविक कार्य में 4 से अधिक कॉलम हैं।

यहाँ छवि विवरण दर्ज करें

हाइलाइट की गई पंक्तियाँ वे हैं जहाँ एक ही पाठ (समूह 2 को भी हाइलाइट किया जाना चाहिए) वाले दो या अधिक सेल हैं, इसलिए उन लोगों को "TEXT A" संदेश प्रदर्शित करना चाहिए।

मेरी स्प्रेडशीट ऑनलाइन देखें


आपका प्रश्न पढ़ता है जैसे कि हम एक स्क्रिप्ट लेखन सेवा हैं। कितने स्तंभ हैं? यदि केवल कुछ, तो आपको इस तरह के एक लंबे फ़ंक्शन की आवश्यकता हो सकती है। या, कुछ VBa
डेव

"टेक्स्ट ए" और "टेक्स्ट बी" से आपका क्या तात्पर्य है क्या ये शाब्दिक वाक्यांश हैं जिन्हें आप प्रदर्शित करना चाहते हैं या क्या वे विशिष्ट सेल मानों को संदर्भित करते हैं? आपके उदाहरण में कुछ भी स्तंभ F में इस आवश्यकता को प्रदर्शित नहीं करता है। क्या स्तंभ E को हाइलाइट किया गया है, क्योंकि आप यही परिणाम चाहते हैं? तुलना करने के लिए कितने कॉलम हैं (3 उदाहरण में लेकिन सवाल कई कहता है)? यह केवल एक तार्किक परीक्षण (कोई दो या अधिक = सत्य) है, या क्या आपको पाठ या स्तंभों की पहचान करने की आवश्यकता है?
फिक्सर 1234

इसके बारे में खेद है, मैं सिर्फ शीर्षक बहुत लंबा नहीं करना चाहता था
स्टीवन एंटोनियस

@ fixer1234 टेक्स्ट एक टेक्स्ट बी सिर्फ एक शब्द है जिसकी मुझे आवश्यकता है, इसलिए कॉलम F में ("YES" और "अच्छी नौकरी") शामिल हैं क्योंकि वे हाइलाइट किए गए हैं क्योंकि वे कॉलम हैं जहां दो या अधिक सेल हैं जिनमें समान मूल्य हैं। मेरे काम के लिए लगभग 5 से 6 कॉलम हैं, लेकिन उदाहरण के लिए मैंने सिर्फ 3 का उपयोग किया है। हां दो या दो से अधिक कोशिकाओं का समान मूल्य है और कोशिकाओं में कुछ पाठ को पहचानने की आवश्यकता नहीं है। जब तक एक ही शब्द या संख्या वाले दो या दो से अधिक कोशिकाएं हैं तब तक यह "पाठ ए" का उत्पादन करेगा
स्टीवन एंटोनियस

@ मेरे शीर्षक और विवरण दोनों का कहना है कि मुझे अलग-अलग रंगों से कोशिकाओं की तुलना करने की आवश्यकता है लेकिन समान रो पर। कोई भी मदद सचमुच सराहनीय होगी।
स्टीवन एंटोनियस

जवाबों:


1

यह VBa इसे करता है (VBa कैसे जोड़ें )। मैंने कुछ विकल्प प्रदान किए हैं ताकि आप इसे भविष्य में स्केल कर सकें, पहली 12 पंक्तियों की जाँच करें या जहाँ आप विभिन्न उत्तरों में टाइप कर सकें '। आप चुन सकते हैं कि कौन सी शुरुआती पंक्ति और अंतिम पंक्ति है, जहां परिणाम प्रदर्शित किए जाएंगे और पाठ मिलान होने या न होने पर क्या शब्द दिखाए जाएंगे! कृपया ध्यान दें, हाइलाइटिंग आपके द्वारा दिए गए एक्सेल डॉक्टर के कारण है, और कोड के साथ कुछ नहीं करना है।

VBa स्क्रिप्ट चलाने से पहले, फ़ाइल का बैक अप लें - आमतौर पर कोई पूर्ववत विकल्प नहीं होता है!

Sub DoTheThing()

'Answer these questions or ye walk the plank

Dim row As Integer
row = 2

Dim firstColumn As String
firstColumn = "B"

Dim lastColumn As String
lastColumn = "D"

Dim resultsColumn As String
resultsColumn = "G"

Dim isFoundText As String
isFoundText = "YES"

Dim isNotFoundText As String
isNotFoundText = "Good Job"

'***Below be for the cap'ains eyes only.

Do While Range("A" & row).Value <> ""

    Dim startChar As Integer
    startChar = Asc(firstColumn)

    Dim endChar As Integer
    endChar = Asc(lastColumn)

    Dim i As Integer

    Dim hasMatch As Boolean
    hasMatch = False

    For i = startChar To endChar

    If Range(Chr(i) & row).Value = Range(Chr(i + 1) & row).Value Then

        hasMatch = True

    End If

    If Range(Chr(startChar) & row).Value = Range(Chr(i + 1) & row).Value Then

        hasMatch = True

    End If

    Next i

    If (hasMatch) Then
        Range(resultsColumn & row).Value = isFoundText
    Else
        Range(resultsColumn & row).Value = isNotFoundText
    End If

row = row + 1


Loop

End Sub

मैंने कर्नल जी को परिणाम लिखे (अपने मूल को वैसा ही रखने के लिए)

यहाँ छवि विवरण दर्ज करें

Vba चलाने के बाद

यहाँ छवि विवरण दर्ज करें


धन्यवाद, लेकिन मैं संलग्न किसी भी छवि को नहीं देख सकता
स्टीवन एंटोनियस

0

सूत्रों के साथ ऐसा करने का एक सीधा तरीका है। मुझे यह बताने दें कि उदाहरण ऐसे मामलों को दिखाता है जिसमें केवल ऐसे मिलान शामिल होते हैं जिनमें पहला कॉलम शामिल होता है। किसी भी सूत्र को एक उदाहरण के खिलाफ परीक्षण किया जाना चाहिए जिसमें यादृच्छिक मैच होते हैं।

कॉलम की संख्या अलग-अलग होने के कारण मैं इसे दो भागों में समझाऊंगा। पहला भाग एक अभिव्यक्ति है जिसे आप आवश्यक संख्या में कॉलम के लिए बनाते हैं। मैंने सूत्र को बेहतर तरीके से चित्रित करने के लिए डेटा का एक कॉलम जोड़ा है, और कुछ मामलों को यादृच्छिक मैचों के साथ शामिल किया है:

यहाँ छवि विवरण दर्ज करें

डेटा के चार स्तंभों की अभिव्यक्ति इस तरह दिखती है (पंक्ति 2, पहली डेटा पंक्ति के लिए):

    COUNTIF(C2:E2,B2)+COUNTIF(D2:E2,C2)+(D2=E2)

यदि N डेटा कॉलम की संख्या है, तो सूत्र में N-1 शब्द हैं। पहला शब्द बताता है कि कितने स्तंभों में पहले के बराबर मूल्य हैं। दूसरा गिनता है कि शेष स्तंभों में से कितने दूसरे के बराबर हैं। और इसी तरह। वे सभी COUNTIFs हो सकते हैं लेकिन मैंने अंतिम मामले के लिए सरल शब्द के रूप में उपयोग किया है। एक कॉलम की गिनती करने के बजाय, मैं सिर्फ यह परीक्षण करता हूं कि क्या अगला अंतिम आखिरी के बराबर है। ट्रू के परिणाम को 1 के मान के रूप में मान्यता दी गई है, 0. के मान के रूप में गलत है। यदि सभी मान अद्वितीय हैं, तो यह अभिव्यक्ति 0. के बराबर होगी। अन्यथा, यह एक उच्च संख्या होगी। अभिव्यक्ति एक IF परीक्षण के अंदर जाती है:

    =IF(<expression>=0,"Unique Message","Match Message")

तो चार डेटा कॉलम के लिए, सूत्र होगा:

    =IF(COUNTIF(C2:E2,B2)+COUNTIF(D2:E2,C2)+(D2=E2)=0,"Unique Message","Match Message")

परिणाम इस तरह दिखता है:

यहाँ छवि विवरण दर्ज करें


क्षमा करें, मैं चित्र नहीं देख सकता
स्टीवन एंटोनियस

क्या <अभिव्यक्ति> मेरे पास अधिक कॉलम है?
स्टीवन एंटोनियस

@ fixer1234 मुझे इसका उपयोग करने की कोशिश करने के बाद मुझे खुद ही जवाब मिला, यह मेरे पास अधिक कॉलम है, लेकिन कम से कम यह मेरे IF फ़ंक्शन और OR फ़ंक्शन का उपयोग करने की तुलना में अधिक सरल है। आपका बहुत बहुत धन्यवाद!
स्टीवन एंटोनियस

0

मैं इसके लिए पावर क्वेरी ऐड-इन का उपयोग करूंगा। इसमें एक काउंट डिस्टिक्ट फ़ंक्शन के साथ एक ग्रुप कमांड है जो पंक्तियों और / या कॉलम के किसी भी संयोजन में यह पता लगा सकता है।

मैंने एक प्रोटोटाइप बनाया है जिसे आप देख सकते हैं या डाउनलोड कर सकते हैं - इसके "पावर क्वेरी डेमो - मेरी वैल्यू में अद्वितीय मानों के लिए कई कॉलम की तुलना करें। xlsx":

https://onedrive.live.com/redir?resid=4FA287BBC10EC562%21398

ध्यान दें कि आप इनपुट शीट में कॉलम और / या पंक्तियों को जोड़कर रख सकते हैं, फिर केवल पावर रिबन से सभी रीफ़्रेश को पावर क्वेरी से रीफ़्रेश करने के लिए हिट करें।

इसका 90% सिर्फ पॉवर क्वेरी रिबन में क्लिक करने के लिए बनाया गया था। एकमात्र अपवाद सरल "अगर" कथन था, जो मैंने "एकाधिक कॉलम की तुलना करें" क्वेरी के अंतिम चरण में लिखा था। इसलिए फार्मूला या वीबीए समाधान की तुलना में बनाए रखने के लिए बहुत कम कोड है।


0

सेल F2 के लिए:

=IF(SUMPRODUCT(--(FREQUENCY(MATCH(B2:D2,B2:D2,0),COLUMN(B2:D2)-COLUMN(B2)+1)>0))=3,TRUE,FALSE)

जब भी उन तीन स्तंभों में तीन अलग-अलग मान होंगे, तो यह आपको सही देगा।

ऐसी साइट से अनुकूलित जिसमें अधिक स्पष्टीकरण और रिक्त स्थान से निपटने का विकल्प शामिल है: https://exceljet.net/formula/count-unique-text-values-in-a-range

एक ही साइट काउंटिफ्स और डेटा के बड़े सेट के साथ प्रदर्शन की समस्याओं की संभावना को छूती है: https://exceljet.net/formula/count-unique-values-in-a-range-with-countif


0

सरणी सूत्रों के बिना दो-चरण समाधान:

एक्सेल स्क्रीनशॉट

चरण 1 : प्रत्येक स्तंभ के लिए घटनाओं की संख्या की गणना करें। यदि यह 1 से अधिक है तो 1 डालें, अन्यथा खाली स्ट्रिंग। स्क्रीनशॉट पर सेल D2 के लिए फॉर्मूला:

=IF(COUNTIF($A2:$C2,A2)>1,1,"")

इस सूत्र को सभी पंक्तियों को कवर करने के लिए नीचे दाएं कोने से खींचा जा सकता है (या डबल-क्लिक किया जा सकता है), फिर सभी स्तंभों को कवर करने के लिए नीचे दाएं कोने से पूरी चयनित पंक्ति D को खींचा जा सकता है।

चरण 2 : प्रत्येक पंक्ति जांच के लिए अगर कोई "1" था

स्क्रीनशॉट पर सेल G2 के लिए फॉर्मूला:

=IF(SUM($D2:$F2)>0,"YES","Good Job")

इस सूत्र को सभी पंक्तियों को कवर करने के लिए नीचे दाएं कोने से खींचा जा सकता है (या डबल-क्लिक किया जा सकता है)।

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


0

स्क्रीनशॉट पर D2 के लिए फॉर्मूला:

=IF(MAX(COUNTIF($A2:$C2, $A2:$C2))>1,"YES","Good job")

सूत्र संपादित करते समय Ctrl+ Shift+ दबाकर इसे एक सरणी सूत्र के रूप में दर्ज करें Enter। उसके बाद इसे सभी पंक्तियों को कवर करने के लिए नीचे दाएं कोने से खींचा जा सकता है (या डबल-क्लिक किया जा सकता है)।

यहाँ छवि विवरण दर्ज करें


-3

आप इस सूत्र का उपयोग कर सकते हैं:

=IF(Cell Number > 2nd cell Number, result)

3
यह उपयोगी होने के लिए थोड़ा बहुत गूढ़ है। क्या आप विस्तृत कर सकते हैं (शायद अधिक ठोस उदाहरण जोड़ सकते हैं)? धन्यवाद।
फिक्सर 1234

1
इसके अलावा, गैर-देशी अंग्रेजी बोलने वालों के संदर्भ में और इस साइट की अर्ध-पेशेवर प्रकृति के कारण, कृपया "आप" और "पूरी तरह से" जैसे शब्दों का उच्चारण करें।
संगीत 2
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.