जहाँ तक मुझे पता है कि ऐसी कोई अंतर्निहित सुविधाएँ नहीं हैं जो एक्सेल में अल्पविराम से अलग किए गए टैग को पार्स और सारांशित कर सकें। आप निश्चित रूप से, वर्कशीट फ़ंक्शंस और थोड़ा VBA के साथ अपना समाधान बना सकते हैं। यहाँ यह करने के लिए एक त्वरित समाधान है।
चरण 1 : Excel में VBA संपादक फलक खोलने के लिए Alt+ दबाएं F11। कस्टम फ़ंक्शन के लिए इस कोड में एक नया मॉड्यूल डालें और पेस्ट करें।
Public Function CCARRAY(rr As Variant, sep As String)
'rr is the range or array of values you want to concatenate. sep is the delimiter.
Dim rra() As Variant
Dim out As String
Dim i As Integer
On Error GoTo EH
rra = rr
out = ""
i = 1
Do While i <= UBound(rra, 1)
If rra(i, 1) <> False Then
out = out & rra(i, 1) & sep
End If
i = i + 1
Loop
out = Left(out, Len(out) - Len(sep))
CCARRAY = out
Exit Function
EH:
rra = rr.Value
Resume Next
End Function
यह फ़ंक्शन आपको टैग डेटा को संक्षिप्त करने के लिए अल्पविराम से अलग सूची बनाने की अनुमति देगा।
चरण 2 : एक वर्कशीट में, एक सेल (नीचे उदाहरण में H2) दर्ज करें, जिस टैग को आप खोजना चाहते हैं। दाईं ओर सेल में, Ctrl+ Shift+ दबाकर निम्न सूत्र दर्ज करें Enter।
=IFERROR(CCARRAY(IF(NOT(ISERROR(FIND(H2,$B$2:$B$6))),$A$2:$A$6),", "),"No matches found.")
Ctrl+ Shift+ दबाकर Enter, आप सूत्र को एक सूत्र के रूप में दर्ज कर रहे हैं। यह {...}
सूत्र पट्टी में घिरा हुआ दिखाई देगा । ध्यान दें कि सूत्र $B$2:$B$6
में वह सीमा है जो सूचीबद्ध वस्तुओं के लिए सभी टैग रखती है $A$2:$A$6
।
संपादित करें:
यदि आपको एक सेल में सूची के बजाय एक कॉलम में सूचीबद्ध होने वाले अपने मैचों से कोई आपत्ति नहीं है, तो आप केवल कार्यपत्रक फ़ंक्शन का उपयोग करके टैग के लिए मिलान वापस कर सकते हैं।
कहाँ अपने शीर्षकों में हैं Column A
, टैग में हैं Column B
, और टैग आप खोज रहे हैं में है H2
, तो आप निम्न का उपयोग कर सकते सरणी सूत्र में I2
और जहाँ तक नीचे भरने के रूप में आप की जरूरत:
=IFERROR(INDEX($A$1:$A$6,SMALL(IF(NOT(ISERROR(FIND($H$2,$B$1:$B$6))),ROW($B$1:$B$6),2000000),ROW()-1)),"")
सूत्र पहले संख्याओं की एक सरणी बनाकर काम करता है, जिसके आधार पर प्रत्येक पंक्ति में टैग खोज शब्द शामिल हैं। यदि कोई मिलान पाया जाता है, तो पंक्ति संख्या को सरणी में संग्रहीत किया जाता है। यदि यह नहीं पाया जाता है, तो 2000000 सरणी में संग्रहीत किया जाता है। अगला, SMALL(<array>,ROW()-1)
सूत्र का भाग ROW()-1
सरणी से वें सबसे छोटा मान लौटाता है । अगला, यह मान INDEX()
फ़ंक्शन के लिए एक इंडेक्स तर्क के रूप में पारित किया जाता है , जहां शीर्षक के सरणी में उस इंडेक्स पर मान वापस आ जाता है। यदि शीर्षक सरणी में पंक्तियों की संख्या से अधिक संख्या को INDEX()
तर्क के रूप में पारित किया जाता है, तो त्रुटि वापस आ जाती है। चूंकि 2000000 को कोई तर्क नहीं मिलने पर तर्क के रूप में पारित किया जाता है, एक त्रुटि वापस आ जाती है। IFERROR()
समारोह तो रिटर्न ""
इस मामले में।
यह समझना महत्वपूर्ण है कि ROW()
इस सूत्र में कैसे उपयोग किया जा रहा है। यदि आप एक अलग पंक्ति में शुरू होने वाले परिणामों की अपनी सूची प्रदर्शित करना चाहते हैं, तो आपको SMALL()
फ़ंक्शन के दूसरे तर्क को समायोजित करने की आवश्यकता होगी ताकि यह सरणी से पहला सबसे छोटा मान लौटाए। उदाहरण के लिए, यदि आपके परिणामों की सूची पंक्ति 2 के बजाय पंक्ति 1 में शुरू होती है, तो आप SMALL(...,ROW())
इसके स्थान पर उपयोग करेंगे SMALL(...,ROW()-1)
।
इसके अलावा, यदि आपके शीर्षक और टैग की सूची रो 1 में शुरू नहीं होती है, तो आपको सूत्र को भी समायोजित करना होगा। IF()
फ़ंक्शन के दूसरे तर्क को समायोजित किया जाना चाहिए ताकि आपके डेटा की पहली पंक्ति में एक मैच लौटे। 1. उदाहरण के लिए, यदि आपके शीर्षक की सूची पंक्ति 1 के बजाय पंक्ति 2 में शुरू होती है, तो आपको IF(...,ROW($A$2:$A$7)-1,...)
इसके बजाय शामिल करने के लिए सूत्र की आवश्यकता होगी IF(...,ROW($A$1:$A$6),...)
।