स्प्रेडशीट में लेबल / टैग आइटम कैसे करें


15

मैं स्प्रेडशीट में नौसिखिया हूं, इसलिए मुझे उम्मीद है कि अगर मैं एक सुपर स्पष्ट प्रश्न पूछ रहा हूं तो आप मुझे माफ कर देंगे।

क्या Excel / Google स्प्रेडशीट में टैग का उपयोग करना संभव है? मैं उन सभी लेखों और पुस्तकों को लॉग करने के लिए एक स्प्रेडशीट बना रहा हूं जो मैं पढ़ रहा हूं। कहो मैं "मैं, क्लॉडियस" पढ़ रहा हूं। मैं इसे ये टैग देना चाहता हूं: इतिहास, कल्पना, जीवनी, विकलांगता, राजनीति, नाटक। फिर, यदि मैं "राजनीति" के साथ टैग किए गए सभी लेखों / पुस्तकों को प्रदर्शित करना चाहता हूं, तो मैं शायद उस टैग के साथ खोज / प्रदर्शन / धुरी कर सकता हूं।

शायद अधिमानतः, टैग्स को एक अल्पविराम द्वारा अलग किए गए प्रत्येक शब्द के साथ एक सेल में होना चाहिए। यदि प्रत्येक शब्द अपनी स्वयं की एक सेल में था, तो यह तालिका को वास्तव में गड़बड़ कर देगा, मुझे लगता है।

मैं अन्य लेबलिंग समाधानों के लिए भी खुला हूं।

धन्यवाद!


मैंने कभी भी एक्सेल में टैग समाधान नहीं देखा है, लेकिन यह नहीं कह रहा है कि एक नहीं है। हो सकता है कि बाहर की जाँच Evernote
Raystafarian

जवाबों:


13

जहाँ तक मुझे पता है कि ऐसी कोई अंतर्निहित सुविधाएँ नहीं हैं जो एक्सेल में अल्पविराम से अलग किए गए टैग को पार्स और सारांशित कर सकें। आप निश्चित रूप से, वर्कशीट फ़ंक्शंस और थोड़ा 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),...)


वाह, यह पूरी तरह से काम करता है! मैं इसे Google स्प्रेडशीट पर पसंद करता हूं, हालांकि। लेकिन यह जावास्क्रिप्ट का उपयोग करता है। मैं कोशिश करूंगा और वहां भी कुछ ऐसा ही करूंगा, हालांकि मैं भाषा के साथ एक पूर्ण और बिल्कुल शुरुआती हूं। बस दो और प्रश्न: डेटा को "संक्षेप" करने का क्या मतलब है? चरण 1 में आपका कोड क्या करता है? मैं यह सवाल विशेष रूप से पूछ रहा हूं क्योंकि मुझे लगता है कि मुझे Google स्प्रेडशीट में जावास्क्रिप्ट के साथ भी ऐसा ही करना पड़ सकता है। आपके समाधान के लिए बहुत बहुत धन्यवाद!
नुसंतारा

महान, मुझे खुशी है कि यह उपयोग की है। "संक्षेप में" से मेरा अभिप्राय केवल मेलों के शीर्षकों की अल्पविराम से अलग सूची बनाने से है। इस उद्देश्य के लिए VBA आवश्यक है। बिल्ट-इन एक्सेल फ़ंक्शन के साथ, यह एक सरणी सूत्र बनाने के लिए काफी सरल है जो मिलान टैग को चुन सकता है। हालांकि, VBA के बिना एक सेल में इन परिणामों को वापस करना संभव नहीं है, क्योंकि CONCATENATEएक्सेल में फ़ंक्शन एक सरणी को तर्क के रूप में नहीं ले सकता है (यदि आप इसे आज़माते हैं तो यह सरणी से पहला आइटम पढ़ता है)। VBA फ़ंक्शन मानों की एक सरणी से अल्पविराम से अलग सूची बनाने के लिए किया जाता है।
एक्सेलेल

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

यह VBA के बिना संभव है? यह बेहतर होगा, मुझे लगता है। यदि यह बहुत असुविधाजनक नहीं है, तो हाँ, यह भयानक होगा यदि आप आपके द्वारा बताई गई विधि को शामिल कर सकते हैं। यह इस विषय के लिए खोज करने वाले किसी व्यक्ति के लिए बहुत उपयोगी होगा! "संक्षेप" को समझाने के लिए धन्यवाद। मैंने सहमति की भी कोशिश की, लेकिन, हाँ, मैं इसे जिस तरह से चाहता था, उसका उपयोग नहीं कर सका। अब मुझे पता है कि यह एक तर्क की तरह व्यवहार नहीं कर सकता।
नुसंतारा

हाँ, यह मुमकिन है। मैं कुछ मिनटों में यहां समाधान पोस्ट करने की कोशिश करूंगा। विलंब के लिए क्षमा चाहते हैं!
एक्सेल

2

यह करते हुए प्रोग्रामेटिक रूप से कुछ मामलों में अच्छा काम करता है मैंने पाया कि मेरे लिए एक मैनुअल एप्रोच काम करता है। टैग के लिए कॉलम का उपयोग करके आप कॉलम में 0 दर्ज करके आसानी से एक पंक्ति वस्तु को टैग कर सकते हैं। फिर आपके पास एक पंक्ति है और उस पंक्ति के लिए टैग कॉलम में से प्रत्येक में 1s दर्ज करें (आप इस पंक्ति को रंगीन कर सकते हैं)। फिर जब आप 1s (ब्लू) पंक्ति के टैग में से एक को अलग करते हैं तो विभाजक के रूप में कार्य करता है। आपके फ़िल्टर किए गए परिणामों (0s) और बाकी सब (_) के बीच।

इसके कुछ फायदे हैं। 1. आपको हर बार अपना टैग टाइप करने की ज़रूरत नहीं है। 2. आप आसानी से यह जांचने के लिए संदर्भ को पार कर सकते हैं कि क्या आपके पास डुप्लिकेट या समान आइटम हैं जिन्हें एक तक कम किया जा सकता है।


1

एक अन्य विचार:

इनबिल्ट फिल्टर कार्यक्षमता का उपयोग करें। टैग कॉलम द्वारा फ़िल्टर करें, फिर आप दी गई टैग वाली पंक्तियों को खोज सकते हैं।

टैग सूची के साथ एक पंक्ति: कॉमेडी, हॉरर, रोमांस

उन तीन टैगों में से किसी एक को खोजने पर दिखाई देगा।


1

मेरा गैर-वीबीए दृष्टिकोण एक कॉलम में टैग को सूचीबद्ध करना है (मान लें कॉलम एच), अल्पविराम के साथ आइटम को अलग करना। वहां से, मैं अपने टैग की सूची प्राप्त करने के लिए "टेक्स्ट टू कॉलम" और "डुप्लिकेट हटाएं" के संयोजन का उपयोग करता हूं। मैं इसे अपनी मुख्य शीट की हेडर पंक्ति में कॉपी करता हूं (इस मामले में, कॉलम एल में शुरुआत। फिर, व्यक्तिगत टैग हेडर के नीचे प्रत्येक सेल में, निम्नलिखित दर्ज करें:

=IF((ISNUMBER(SEARCH(L$1,$H2)))=TRUE,1,0)

यह दोनों दुनियाओं को सर्वश्रेष्ठ देता है - टैग कॉलम (एच) लोगों के लिए पढ़ना आसान है; कंप्यूटर के लिए व्यक्तिगत टैग कॉलम (उनके 0s और 1s के साथ) पढ़ना आसान है। यदि आप दिए गए टैग के सेट के भीतर रहते हैं तो यह गतिशील है; यदि नहीं, तो आपको अपने नए टैग को हेडर पंक्ति में जोड़ने की आवश्यकता है, फिर अपने सूत्रों को कॉपी करें।

वहां से, पिवट-टेबल्स आपके दोस्त हैं।


0

यह मेरे लिए बिल्कुल स्पष्ट नहीं है कि आप टैग का उपयोग कैसे करना चाहते हैं। लेकिन Google पत्रक में, आप SPLIT () फ़ंक्शन का उपयोग करके टैग की एक स्ट्रिंग को विभाजित करने के लिए (रिक्त स्थान, अल्पविराम, या जो कुछ भी आप चाहते हैं) कई अन्य कोशिकाओं में विभाजित कर सकते हैं, और मुझे यकीन है कि एक्सेल में भी एक फ़ंक्शन है जो एक खोज कर सकता है एक टैग के लिए सेल।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.