मैं उन विभिन्न सूचियों में शामिल होने का प्रयास कर रहा हूं जिन पर 3 से कम मान हैं, एक उदाहरण है

यहां

मैं मैक्रोज़ का उपयोग करके इसे करने में सक्षम था, लेकिन मैं कुछ और स्वचालित चाहता था क्योंकि ये सूचियां अक्सर अपडेट होती हैं, क्या सूत्रों का उपयोग करके ऐसा कुछ करने का कोई तरीका है? यदि नहीं, तो क्या वीबीए का उपयोग करके ऐसा करने का कोई तरीका है लेकिन "क्लिक" बटन से बेहतर तरीके से?

VBasic2008 का उत्तर देना:

मैं इस मध्यस्थ/उन्नत एक्सेल कार्यों के लिए नया हूँ। मुझे बस एहसास हुआ कि मेरा मैक्रो काम नहीं कर रहा है। इससे कोई फर्क नहीं पड़ता कि परिणाम कहां होंगे, बस तालिका के अंत में हो सकते हैं। मेरे पास लगभग 20 कॉलम हैं। मूल रूप से, मैंने कुछ ऐसा बनाने की कोशिश की जो यह जांचता है कि कॉलम में मानों की संख्या 3 से कम है या नहीं और यदि ऐसा है तो यह सूची लेगा और "ग्रुप एक्स" पर पेस्ट करेगा, लेकिन मैं ऐसा करने के लिए केवल कार्यों का उपयोग करने की कोशिश कर रहा हूं, मैं INDEX + MOD का उपयोग करके सभी स्तंभों के साथ एक सूची बनाने में सक्षम था, लेकिन इसने AAA से लेकर अंतिम तक सभी नामों को लिया, और मुझे कुछ ऐसा चाहिए था जो केवल 3 से कम मानों वाली सूची ले।

कुछ अपडेट:

=INDEX(IF($F$11:$J$11=3;$F$6:$J$9;"");MOD(ROW()-ROW($O$6);4)+1;INT((ROW( )-ROW($O$6))/4)+1)

मैं इस सूत्र के साथ आने में सक्षम था, लेकिन सब कुछ कुछ रिक्त स्थान के साथ दिखाई देता है। formula

धन्यवाद, मैथ्यू

0
Matheus Costa 24 अक्टूबर 2020, 22:56

2 जवाब

सबसे बढ़िया उत्तर

सूत्रों के साथ ऐसा करना संभव है, लेकिन काफी उन्नत है। यहां कोई आपके लिए एक सूत्र लिखेगा जिसे आप अपने परिदृश्य में परिवर्तन होने पर बनाए रखने में सक्षम नहीं हो सकते हैं।

यदि आपके पास पहले से ही VBA कोड है जो वह करता है जो आपको करने की आवश्यकता है, तो आप उस कोड को एक ईवेंट प्रक्रिया में ले जा सकते हैं जो कॉलम में एक नया मान जोड़े जाने पर स्वचालित रूप से शुरू हो जाती है।

आपको जिस ईवेंट की आवश्यकता है वह Worksheet_Change ईवेंट है और यह शीट मॉड्यूल में रहता है (शीट पर राइट-क्लिक करें और "कोड देखें" पर क्लिक करें। वह शीट मॉड्यूल दिखाएगा।

आपके परिदृश्य में, जब आप कॉलम डी से जी में मान बदलते हैं तो आप कोड को चलाने के लिए चाहते हैं, इसलिए आपका कोड कुछ इस तरह से शुरू होना चाहिए

Private Sub Worksheet_Change(ByVal Target As Range)

' run only when a value in columns D to G are changed
If Not Intersect(Target, Range("D:G")) Is Nothing Then

    ' your code goes here
    MsgBox "You just changed a value in one of the the watched columns!"

End If

End Sub

अतिरिक्त आवश्यकताओं के बाद संपादित करें

यदि आपके पास नए डायनेमिक ऐरे फ़ंक्शन के साथ Office 365 है, तो यह सूत्र दृष्टिकोण काम करेगा। आपके इंडेक्स फॉर्मूले के आधार पर, मैंने एक छोटा सा बदलाव किया है। आप एक सहायक कॉलम में संशोधित अनुक्रमणिका सूत्र का उपयोग कर सकते हैं। फिर इंडेक्स फ़ार्मुलों द्वारा दिए गए मानों पर फ़िल्टर () फ़ंक्शन का उपयोग करें।

enter image description here

सेल J4 में इंडेक्स फॉर्मूला और J23 में कॉपी किया गया

=INDEX(IF($D$11:$H$11=3,$D$4:$H$7,"#"),MOD(ROW()-ROW($J$4),4)+1,INT((ROW()-ROW($J$4))/4)+1)

K4 . में फ़िल्टर सूत्र

=FILTER(J4:J23,(J4:J23<>"#")*(J4:J23<>0))

0
teylyn 25 अक्टूबर 2020, 00:28

अगर मैं आपको सही ढंग से समझता हूं, तो निम्न का प्रयास करें:

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

यदि आपके पास Windows O365 है, तो आप निम्न सूत्रों का उपयोग कर सकते हैं: (और 100 को न्यूनतम संभव पंक्ति में बदलें)

D2:  =COUNTA(D$4:D$100)

और स्तंभों की संख्या के लिए दाईं ओर भरें

I4: =FILTERXML("<t><s>" & TEXTJOIN("</s><s>",TRUE,FILTER($D$4:$G$100,$D$2:$G$2<=3)) &"</s></t>","//s")

enter image description here

0
Ron Rosenfeld 25 अक्टूबर 2020, 02:16