मैं उन विभिन्न सूचियों में शामिल होने का प्रयास कर रहा हूं जिन पर 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)
मैं इस सूत्र के साथ आने में सक्षम था, लेकिन सब कुछ कुछ रिक्त स्थान के साथ दिखाई देता है।
धन्यवाद, मैथ्यू
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 है, तो यह सूत्र दृष्टिकोण काम करेगा। आपके इंडेक्स फॉर्मूले के आधार पर, मैंने एक छोटा सा बदलाव किया है। आप एक सहायक कॉलम में संशोधित अनुक्रमणिका सूत्र का उपयोग कर सकते हैं। फिर इंडेक्स फ़ार्मुलों द्वारा दिए गए मानों पर फ़िल्टर () फ़ंक्शन का उपयोग करें।
सेल 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))
अगर मैं आपको सही ढंग से समझता हूं, तो निम्न का प्रयास करें:
- मैंने नीचे दी गई वस्तुओं को जोड़ना आसान बनाने के लिए, पंक्ति 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")
संबंधित सवाल
नए सवाल
excel
केवल एक्सेल ऑब्जेक्ट्स या फ़ाइलों, या जटिल फॉर्मूला विकास के खिलाफ प्रोग्रामिंग पर प्रश्नों के लिए। यदि आप लागू हो तो आप Excel टैग को VBA, VSTO, C #, VB.NET, PowerShell, OLE स्वचालन और अन्य प्रोग्रामिंग संबंधी टैग और प्रश्नों के साथ जोड़ सकते हैं। सुपर उपयोगकर्ता पर एकल कार्यपत्रक कार्यों के लिए एमएस एक्सेल के बारे में सामान्य सहायता उपलब्ध है।