एक्सेल फ़ंक्शन जो एक स्ट्रिंग का मूल्यांकन करता है जैसे कि यह एक सूत्र था?


26

मान लीजिए कि मेरे पास एक पाठ स्ट्रिंग है जैसे "11+5"या यहां तक ​​कि "=11+5"एक सेल में संग्रहीत। क्या एक्सेल में एक फ़ंक्शन है जो मुझे वास्तव में उस स्ट्रिंग का मूल्यांकन करने की अनुमति देगा जैसे कि यह एक सूत्र था?

यह एक अन्य परियोजना के लिए सहायक होगा जहाँ मैं एक्सेल में 'डायनामिक' फॉर्मूले लिखने में सक्षम होना चाहूँगा।


3
एक्सेल में यह EVALUATE () फ़ंक्शन था जो ठीक यही करता है। हालांकि यह बहुत समय पहले था, और मैं नए एक्सेल के बारे में निश्चित नहीं हूं। चारों ओर प्रहार करेंगे और देखेंगे कि क्या मुझे कुछ समान मिल सकता है।
एक्यूरिया

1
वह फ़ंक्शन परिचित लगता है, लेकिन मैं निश्चित रूप से इसे Excel2007 में नहीं पा सकता हूं, जो कि मैं वर्तमान में उपयोग कर रहा हूं।
drapkin11

मैं इसे = /
aururia

जवाबों:


26

EVALUATE सभी वर्तमान संस्करणों में VBA में उपलब्ध है

आप इसे VBA कोड में शामिल कर सकते हैं, या इसे वर्कशीट फ़ंक्शन के रूप में उपलब्ध कराने के लिए एक साधारण UDF में लपेट सकते हैं

Function ev(r As Range) As Variant
    ev = Evaluate(r.Value)
End Function

यह मूल रूप से पारित पैरामीटर के मूल्य को एक्सेल फॉर्मूला के रूप में मानता है, जैसे कि यह एक सेल में दर्ज किया गया था

"11+5"और "=11+5"उसी परिणाम का उत्पादन करेगा


1
मैं एक्सेल -टैंक में उपयोगकर्ता-परिभाषित कार्यों के बारे में सब भूल गया।
drapkin11

मैंने स्ट्रींग के लिए एक छोटा सा मॉडिफिकेशन चेंजिंग रेंज पैरामीटर किया और यह मुझे अच्छा रूप देता है। धन्यवाद
मकाह

17
=evaluate(put_reference[s]_here)

यह एक semifunction है - इसका उपयोग केवल Name Manager में किया जा सकता है।

यह आप इसका उपयोग कैसे कर सकते हैं:

  • एक सेल को इंगित करें और आप नाम प्रबंधक (FORMULAS टैब से या CTRL + F3 पर क्लिक करके) खोलें

    उदाहरण का मूल्यांकन करें

  • =evaluate(उस सेल पर लिखें और क्लिक करें जिसे आप चाहते हैं (सापेक्ष संदर्भ रखने के लिए सबसे अच्छा)।

  • के साथ सूत्र समाप्त करें )
  • इसे एक नाम दें - (इस उदाहरण में मैं इसे बस फोन करूंगा eva)।
  • ओके पर क्लिक करें ।

अब, मान लीजिए कि आपने B1 का चयन कर लिया है और यह सब संदर्भित A1 बना दिया है। A1 में आप " 1 + 1 " डाल सकते हैं और B1 में आप लिखते हैं =eva- एक बार जब आप ENTER मारेंगे, तो B1 मान होगा 2। जैसा कि नाम प्रबंधक में संदर्भ सापेक्ष था, आप =evaकिसी भी सेल के सेल का मूल्यांकन प्राप्त करने के लिए उपयोग कर सकते हैं जहां से आप इसे चाहते हैं। (उदा। B2 में, =evaसेल A2 का परिणाम लौटाएगा)


1
बहुत अच्छा - और जानकर अच्छा लगा। यह भी एक तालिका स्तंभ के लिए काम करता है: = मूल्यांकन (Tablename [@ [स्तंभ]]) कुछ आप एक सबसे एक्सेल मदद के या उन्नत ट्यूटोरियल में आसानी से नहीं मिल सकता है
Paschi

1
... और हमेशा की तरह एक्सेल फ़ार्मुलों के साथ, यदि आप एक स्थानीय बिल्ड का उपयोग करते हैं, तो आपको स्थानीय फ़ंक्शन का उपयोग करने की आवश्यकता है - उदाहरण के लिए Excel 2016 DE में इसे कहा जाता है=auswerten(...)
kiwiwings

6

@Karel और @Laurentiu Mirica से महान जवाब के साथ एक महत्वपूर्ण चेतावनी है: मूल्यांकन फ़ंक्शन तब तक पुनर्गणना नहीं करेगा जब तक कि संदर्भित सेल में परिवर्तन न हो। उदाहरण के लिए, सेल C1 में टेक्स्ट होता है "A1+B1"और D1 में फ़ंक्शन होता है =eval। यदि A1 या B1 में मान बदलते हैं, तो सेल D1 पुनर्गणित नहीं होता है

Eval समस्या का प्रदर्शन

इसे या तो स्ट्रिंग या एवल सेल में एक अस्थिर फ़ंक्शन को शुरू करके ठीक किया जा सकता है। यह हर बार वर्कशीट के पुनर्गणना के लिए एक पुनर्गणना के लिए मजबूर करेगा। उदाहरण के लिए, सेल C1 के साथ प्रतिस्थापित किया जा सकता है =if(today(),"A1+B1",)। या, D1 के साथ प्रतिस्थापित किया जा सकता है =if(today(),eval,)। कोई भी अस्थिर कार्य करना चाहिए।

एक तीसरा और शायद सबसे सरल उपाय है, नाम प्रबंधक में अर्ध-कार्य को बदलना =if(today(),evaluate(c1),)


धन्यवाद मैं कुछ समय के लिए इस तरह की चाल की तलाश में रहा हूं :)
बेन पर्सिक

4
=indirect()

यदि आप इसे एक सेल में उपयोग करते हैं (कॉनकैट के साथ) तो यह बहुत उपयोगी हो सकता है।

उदाहरण के लिए, यह सूत्र किसी अन्य कार्यपत्रक पर सेल B5 का मान प्रदर्शित करेगा (जिसका नाम इस पत्रक पर सेल A2 में संग्रहीत है:

=INDIRECT(CONCATENATE(A2,"!B5"))

काम करने के लिए बाहरी कार्यपत्रक खुला होना चाहिए।


काम नहीं करता है, #REF
SIslam

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