मेरे पास मेरी वर्कशीट के सेल I32 (123456789) में संख्याओं का एक सतत सेट है। मैं प्रत्येक संख्या को नौ पुनरावृत्तियों (पुनरावृत्ति का उपयोग करके) के साथ जोड़ने के लिए नए लैम्ब्डा फ़ंक्शन का उपयोग करना चाहता हूं। सेल L32 में अंतिम मान 45 होना चाहिए।

मेरे पास इस समय जो मिला है वह #VALUE! त्रुटि। मैं इसे Microsoft Excel ब्लॉग, जहां अमान्य वर्णों को सेल से निकाल दिया जाता है।

सूत्र:

=LAMBDA(Number,NumberGroup,

AddNumbers(

SUM(LEFT(Number,1)),
RIGHT(NumberGroup,LEN(NumberGroup)-1)
)

)(L32)
3
Statto 31 जिंदा 2021, 02:55

1 उत्तर

सबसे बढ़िया उत्तर

आप वर्तमान में किसी रिकर्सन का उपयोग नहीं कर रहे हैं। आप बस योग करने की कोशिश कर रहे हैं। यदि आप वास्तव में अपने LAMBDA() के अंदर रिकर्सन चाहते हैं तो कुछ ऐसा करने का प्रयास करें:

=LAMBDA(Input,AddAll,X,IF(X=LEN(Input)+1,AddAll,Addnumbers(Input,AddAll+MID(Input,X,1),X+1)))

मैंने LAMBDA() के लिए तीन पैरामीटर बनाए:

  • Input - आपके सेल/संख्याओं की स्ट्रिंग का संदर्भ;
  • AddAll - जोड़े गए नंबरों का कुल योग;
  • X - एक साधारण काउंटर, मानो हम VBA में कोई फंक्शन लिख रहे हों;

यदि आप अपने नाम प्रबंधक में फ़ंक्शन जोड़ते हैं, तो अब आप इसका उपयोग करके कॉल कर सकते हैं: =Addnumbers(I32,0,1), जिसका अर्थ है:

  • हमारे LAMBDA() फ़ंक्शन को कॉल करें जिसे हमने "AddNumbers" नाम दिया है;
  • पहला पैरामीटर हमारे सेल/स्ट्रिंग का संदर्भ होना चाहिए;
  • दूसरा पैरामीटर हमारा वर्तमान कुल है, शुरुआत में शून्य;
  • तीसरा पैरामीटर हमारे काउंटर की शुरुआत है, जो 1 होना चाहिए।

मैंने विशेष रूप से नेस्टेड IF() को पुनरावृति प्राप्त करने के लिए जोड़ा, i.o.w. पुनरावर्तन IF() काउंटर की वर्तमान स्थिति की जांच करता है। केवल अगर वह हमारे इनपुट की कुल लंबाई से बड़ा है, तो यह वर्तमान कुल लौटाएगा, अन्यथा; रिकर्सन दूसरे पैरामीटर (FALSE पैरामीटर) में LAMBDA() को फिर से कॉल करने के साथ शुरू होता है जहां हम उपयोग करते हैं:

  • वही Input मान;
  • AddAll के मौजूदा इंडेक्स से किसी एक नंबर को जोड़ने के लिए MID() का इस्तेमाल करें;
  • हमारे काउंटर X को 1 से बढ़ाएं।

अब हमारे पास रिकर्सन रास्ते से बाहर है, मैं कहूंगा कि यदि आप LAMBDA() का उपयोग करना चाहते हैं तो आपके पास यहां बेहतर विकल्प हैं क्योंकि रिकर्सन की आवश्यकता नहीं है। प्रयत्न:

=LAMBDA(Input,SUM(--MID(Input,SEQUENCE(LEN(Input)),1)))

=Addnumbers(I32) के माध्यम से कॉल करें।

3
JvdV 31 जिंदा 2021, 11:37