एक्सेल में उपयोगकर्ता फ़ंक्शन के लिए एक उपनाम कैसे परिभाषित करें?


3

मैं एक रास्ता खोज रहा हूं कि कैसे एक्सेल में कुछ प्रकार के उपनाम को परिभाषित किया जाए। मान लें कि मेरे पास घर खर्च सूची में हर पंक्ति को वर्गीकृत / टैग करने का यह लंबा कार्य है:

= IF (ISNUMBER (खोज ( "करी", $ F2)), "करी", (या (ISNUMBER (खोज ({ "LIDL", "TESCO", "अल्बर्ट", "बिल्ला"}, $ F2)) ), "किराने का सामान", (या (ISNUMBER (खोज ({ "FITINN", "जीएम   इलेक्ट्रॉनिक "}, $ F2)))," मज़ा "," ")))

यह बस पड़ोसी सेल की जांच करता है और एक टैग को वर्तमान सेल में भरता है। अब हम कहते हैं कि यह फ़ंक्शन सौ रेखाओं वाला है, इसलिए मैं इसे प्रत्येक पंक्ति में शीट पर नहीं रखना चाहता। मैं 'टैग' नाम से एक उपनाम बनाना चाहता हूं और हर सेल में सिर्फ = टैग लगाता हूं। मैं ऐसा कुछ कैसे हासिल करूं?


1
वास्तव में क्या कारण है कि आप इस सूत्र को अन्य कक्षों में कॉपी नहीं करना चाहते हैं?
LPChip

1
इसके बजाय UDF आज़माएं
Raystafarian

ठीक है, अगर मेरे पास शीट में 10k लाइनें होंगी, तो यह फ़ाइल को असुविधाजनक रूप से बड़ा कर देगा, लेकिन ज्यादातर मुझे हर बार फॉर्मूला कॉपी करना होगा, मैं इसे एक जगह संपादित करने के बजाय सभी कक्षों में एक और टैग जोड़ दूंगा। ।
Ren

मुझे लगा कि यह यूडीएफ है? क्षमा करें, एक्सेल के साथ अधिक अनुभव नहीं है, मैं अधिक बैश-स्क्रिप्टिंग-प्रकार का आदमी हूं ...: - /
Ren

जवाबों:


1

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

देख यहाँ दिशा - निर्देश के लिए। Google के लिए जादुई वाक्यांश उपयोगकर्ता परिभाषित फ़ंक्शन है।


1

तालिकाओं का उपयोग करें।

अपनी हेडर पंक्ति सहित कोशिकाओं की संपूर्ण आयत को हाइलाइट करें, "इन्सर्ट टेबल" चुनें, और इसे टेबल में बदल दें।

फिर F2 के अपने उल्लेख को बदलें [@ColumnTitle] जहाँ "ColumnTitle" F के कॉलम का शीर्षक है। [ColumnTitle] पूरे स्तंभ को संदर्भित करता है, [@ColumnTitle] वर्तमान पंक्ति में उस स्तंभ के सेल को संदर्भित करता है।

एक बार जब आप पूरी पंक्ति को एक सूत्र से बदलते हैं जो "A1" नोटेशन का उपयोग नहीं करता है, तो उस पंक्ति में प्रत्येक सेल के लिए समान है, फिर तालिका में कितनी पंक्तियाँ हैं, इसकी परवाह किए बिना सूत्र एक बार संग्रहीत किया जाता है । यदि आप इसे किसी सेल में बदलते हैं, तो यह पूरे कॉलम के लिए बदल जाता है, आपके रखरखाव में अभी काफी कमी आई है और आपका फॉर्मूला अधिक पठनीय है।

और वैसे, आप यूडीएफ का उपयोग तालिकाओं में भी कर सकते हैं, इसलिए आपके पास एक सूत्र हो सकता है =MyUDF([ColumnTitleA],[@ColumnTitleA],Offset([@ColumnTitleB],-1,0)) और यह A के सभी डेटा को मौजूदा पंक्ति के लिए A में सेल और पिछली पंक्ति के लिए B में सेल को पास करेगा।


0

आप आंख पर थोड़ा आसान होने के लिए निम्नलिखित पर विचार कर सकते हैं:

=INDEX($F$2:$F$8,MATCH(TRUE,NOT(ISERROR(SEARCH($E$2:$E$8,$A$2))),0))

मैंने इसे निम्नलिखित सेटअप के साथ परीक्षण किया है - ऊपर सूत्र सेल में है A5

enter image description here


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