విషయ సూచిక
ప్రస్తుతానికి, మైక్రోసాఫ్ట్ ఎక్సెల్ దాదాపు ఐదు వందల వర్క్షీట్ ఫంక్షన్లను ఫంక్షన్ విజార్డ్ విండో ద్వారా అందుబాటులో ఉంది - బటన్ fx ఫార్ములా బార్లో. ఇది చాలా మంచి సెట్, అయినప్పటికీ, దాదాపు ప్రతి వినియోగదారు త్వరగా లేదా తరువాత ఈ జాబితాలో తనకు అవసరమైన ఫంక్షన్ను కలిగి లేని పరిస్థితిని ఎదుర్కొంటారు - ఇది ఎక్సెల్లో లేనందున.
ఇప్పటి వరకు, ఈ సమస్యను పరిష్కరించడానికి ఏకైక మార్గం మాక్రోలు, అంటే విజువల్ బేసిక్లో మీ స్వంత యూజర్-డిఫైన్డ్ ఫంక్షన్ (UDF = యూజర్ డిఫైన్డ్ ఫంక్షన్) రాయడం, దీనికి తగిన ప్రోగ్రామింగ్ నైపుణ్యాలు అవసరం మరియు కొన్నిసార్లు ఇది సులభం కాదు. అయితే, తాజా Office 365 నవీకరణలతో, పరిస్థితి మెరుగ్గా మారింది - Excelకి ప్రత్యేక "రేపర్" ఫంక్షన్ జోడించబడింది. LAMBDA. దాని సహాయంతో, మీ స్వంత ఫంక్షన్లను సృష్టించే పని ఇప్పుడు సులభంగా మరియు అందంగా పరిష్కరించబడుతుంది.
కింది ఉదాహరణలో దాని ఉపయోగం యొక్క సూత్రాన్ని చూద్దాం.
మీకు ఎక్కువగా తెలిసినట్లుగా, Excel అనేక తేదీలను అన్వయించే ఫంక్షన్లను కలిగి ఉంది, ఇది ఇచ్చిన తేదీకి రోజు, నెల, వారం మరియు సంవత్సరం సంఖ్యను నిర్ణయించడానికి మిమ్మల్ని అనుమతిస్తుంది. కానీ కొన్ని కారణాల వలన త్రైమాసికం సంఖ్యను నిర్ణయించే ఫంక్షన్ లేదు, ఇది కూడా తరచుగా అవసరమవుతుంది, సరియైనదా? ఈ లోపాన్ని పరిష్కరిద్దాం మరియు దీనితో సృష్టిద్దాం LAMBDA ఈ సమస్యను పరిష్కరించడానికి స్వంత కొత్త ఫంక్షన్.
దశ 1. సూత్రాన్ని వ్రాయండి
మాన్యువల్గా సాధారణ పద్ధతిలో మనకు అవసరమైన వాటిని లెక్కించే షీట్ సెల్లో ఫార్ములాను వ్రాస్తాము అనే వాస్తవంతో ప్రారంభిద్దాం. క్వార్టర్ సంఖ్య విషయంలో, ఇది చేయవచ్చు, ఉదాహరణకు, ఇలా:
దశ 2. LAMBDAలో చుట్టడం మరియు పరీక్షించడం
ఇప్పుడు కొత్త LAMBDA ఫంక్షన్ని వర్తింపజేయడానికి మరియు దానిలో మా ఫార్ములాను చుట్టడానికి సమయం ఆసన్నమైంది. ఫంక్షన్ సింటాక్స్ క్రింది విధంగా ఉంది:
=LAMBDA(వేరియబుల్ 1; వేరియబుల్ 2; ... వేరియబుల్N ; ఎక్స్ప్రెషన్)
ఇక్కడ ఒకటి లేదా అంతకంటే ఎక్కువ వేరియబుల్స్ పేర్లు ముందుగా జాబితా చేయబడతాయి మరియు చివరి ఆర్గ్యుమెంట్ ఎల్లప్పుడూ ఫార్ములా లేదా వాటిని ఉపయోగించే లెక్కించిన వ్యక్తీకరణ. వేరియబుల్ పేర్లు సెల్ చిరునామాల వలె కనిపించకూడదు మరియు చుక్కలను కలిగి ఉండకూడదు.
మా విషయంలో, ఒకే ఒక వేరియబుల్ ఉంటుంది - మేము త్రైమాసిక సంఖ్యను లెక్కించే తేదీ. దాని కోసం వేరియబుల్ అని పిలుద్దాం, డి. అప్పుడు ఒక ఫంక్షన్లో మా ఫార్ములాను చుట్టడం LAMBDA మరియు అసలైన సెల్ A2 యొక్క చిరునామాను కల్పిత వేరియబుల్ పేరుతో భర్తీ చేస్తే, మేము పొందుతాము:
అటువంటి పరివర్తన తర్వాత, మా ఫార్ములా (వాస్తవానికి, సరైనది!) లోపాన్ని సృష్టించడం ప్రారంభించిందని దయచేసి గమనించండి, ఎందుకంటే ఇప్పుడు సెల్ A2 నుండి అసలు తేదీ దానికి బదిలీ చేయబడదు. పరీక్ష మరియు విశ్వాసం కోసం, మీరు ఫంక్షన్ తర్వాత వాటిని జోడించడం ద్వారా దానికి వాదనలు పంపవచ్చు LAMBDA కుండలీకరణాల్లో:
దశ 3. పేరును సృష్టించండి
ఇప్పుడు సులభమైన మరియు ఆహ్లాదకరమైన భాగం కోసం. మేము తెరుస్తాము పేరు మేనేజర్ టాబ్ ఫార్ములా (ఫార్ములా - పేరు మేనేజర్) మరియు బటన్తో కొత్త పేరును సృష్టించండి సృష్టించు (సృష్టించు). మా భవిష్యత్ ఫంక్షన్ కోసం ఒక పేరును రూపొందించండి మరియు నమోదు చేయండి (ఉదాహరణకు, నోమ్క్వార్తల), మరియు ఫీల్డ్లో <span style="font-family: Mandali; "> లింక్</span> (సూచన) ఫార్ములా బార్ నుండి జాగ్రత్తగా కాపీ చేసి, మా ఫంక్షన్ను అతికించండి LAMBDA, చివరి వాదన లేకుండా మాత్రమే (A2):
అంతా. క్లిక్ చేసిన తర్వాత OK సృష్టించిన ఫంక్షన్ ఈ వర్క్బుక్లోని ఏదైనా షీట్లోని ఏదైనా సెల్లో ఉపయోగించవచ్చు:
ఇతర పుస్తకాలలో ఉపయోగించండి
LAMBDA మరియు డైనమిక్ శ్రేణులు
ఒక ఫంక్షన్తో సృష్టించబడిన అనుకూల విధులు LAMBDA కొత్త డైనమిక్ శ్రేణులు మరియు వాటి ఫంక్షన్లతో పనికి విజయవంతంగా మద్దతు ఇస్తుంది (వడపోత, UNIK, GRADE2020లో Microsoft Excelకి జోడించబడింది.
మేము రెండు జాబితాలను సరిపోల్చడానికి మరియు వాటి మధ్య వ్యత్యాసాన్ని తిరిగి ఇచ్చే కొత్త వినియోగదారు-నిర్వచించిన ఫంక్షన్ని సృష్టించాలనుకుంటున్నాము - మొదటి జాబితా నుండి రెండవ జాబితాలో లేని అంశాలు. జీవితం యొక్క పని, కాదా? ఇంతకుముందు, దీని కోసం వారు లా ఫంక్షన్లను ఉపయోగించారు VPR (VLOOKUP), లేదా పివోట్ టేబుల్స్, లేదా పవర్ క్వెరీ ప్రశ్నలు. ఇప్పుడు మీరు ఒక ఫార్ములాతో చేయవచ్చు:
ఆంగ్ల సంస్కరణలో ఇది ఉంటుంది:
=LAMBDA(a;b;ФИЛЬТР(a;СЧЁТЕСЛИ(b;a)=0))(A1:A6;C1:C10)
ఇక్కడ ఫంక్షన్ COUNTIF రెండవ జాబితాలోని మొదటి జాబితా యొక్క ప్రతి మూలకం యొక్క సంఘటనల సంఖ్యను మరియు ఆ తర్వాత ఫంక్షన్ను గణిస్తుంది వడపోత వాటిలో ఈ సంఘటనలు లేని వారిని మాత్రమే ఎంపిక చేస్తుంది. ఈ నిర్మాణాన్ని చుట్టడం ద్వారా LAMBDA మరియు దాని ఆధారంగా పేరున్న పరిధిని సృష్టించడం, ఉదాహరణకు, శోధన పంపిణీ - మేము డైనమిక్ శ్రేణి రూపంలో రెండు జాబితాలను పోల్చిన ఫలితాన్ని అందించే అనుకూలమైన ఫంక్షన్ను పొందుతాము:
మూలం డేటా సాధారణమైనది కాకపోయినా, “స్మార్ట్” పట్టికలు అయితే, మా ఫంక్షన్ కూడా సమస్యలు లేకుండా తట్టుకుంటుంది:
మరొక ఉదాహరణ టెక్స్ట్ని XMLకి మార్చడం ద్వారా డైనమిక్గా విభజించడం మరియు మేము ఇటీవల అన్వయించిన FILTER.XML ఫంక్షన్ని ఉపయోగించి సెల్ ద్వారా సెల్ను అన్వయించడం. ఈ సంక్లిష్ట సూత్రాన్ని ప్రతిసారీ మాన్యువల్గా పునరుత్పత్తి చేయకుండా ఉండటానికి, దీన్ని LAMBDAలో చుట్టడం మరియు దాని ఆధారంగా డైనమిక్ పరిధిని సృష్టించడం సులభం అవుతుంది, అనగా కొత్త కాంపాక్ట్ మరియు అనుకూలమైన ఫంక్షన్, దీనికి పేరు పెట్టడం, ఉదాహరణకు, RAZDTEXT:
ఈ ఫంక్షన్ యొక్క మొదటి వాదన సోర్స్ టెక్స్ట్తో సెల్ అవుతుంది మరియు రెండవది - సెపరేటర్ క్యారెక్టర్, మరియు ఇది ఫలితాన్ని క్షితిజ సమాంతర డైనమిక్ అర్రే రూపంలో అందిస్తుంది. ఫంక్షన్ కోడ్ క్రింది విధంగా ఉంటుంది:
=LAMBDA(t;d; ట్రాన్స్పోజ్(ఫిల్టర్.XML("
ఉదాహరణల జాబితా అంతులేనిది - మీరు తరచుగా అదే సుదీర్ఘమైన మరియు గజిబిజిగా ఉండే ఫార్ములాను నమోదు చేయాల్సిన ఏ పరిస్థితిలోనైనా, LAMBDA ఫంక్షన్ జీవితాన్ని గమనించదగ్గ విధంగా సులభతరం చేస్తుంది.
అక్షరాల పునరావృత గణన
అన్ని మునుపటి ఉదాహరణలు LAMBDA ఫంక్షన్ యొక్క అత్యంత స్పష్టమైన, ఒక వైపు మాత్రమే చూపించాయి - దానిలో పొడవైన సూత్రాలను చుట్టడానికి మరియు వాటి ఇన్పుట్ను సులభతరం చేయడానికి "రేపర్"గా దాని ఉపయోగం. వాస్తవానికి, LAMBDAకి మరొక, చాలా లోతైన, దాదాపు పూర్తి స్థాయి ప్రోగ్రామింగ్ లాంగ్వేజ్గా మారుతుంది.
వాస్తవం ఏమిటంటే LAMBDA ఫంక్షన్ల యొక్క ప్రాథమికంగా ముఖ్యమైన లక్షణం వాటిని అమలు చేయగల సామర్థ్యం సూత్రం - గణనల తర్కం, గణన ప్రక్రియలో ఫంక్షన్ తనను తాను పిలుస్తుంది. అలవాటు నుండి, ఇది గగుర్పాటుగా అనిపించవచ్చు, కానీ ప్రోగ్రామింగ్లో, పునరావృతం అనేది ఒక సాధారణ విషయం. విజువల్ బేసిక్లోని మాక్రోలలో కూడా, మీరు దీన్ని అమలు చేయవచ్చు మరియు ఇప్పుడు, మీరు చూడగలిగినట్లుగా, ఇది ఎక్సెల్కి వచ్చింది. ఆచరణాత్మక ఉదాహరణతో ఈ సాంకేతికతను అర్థం చేసుకోవడానికి ప్రయత్నిద్దాం.
సోర్స్ టెక్స్ట్ నుండి ఇచ్చిన అన్ని అక్షరాలను తీసివేసే వినియోగదారు నిర్వచించిన ఫంక్షన్ని మనం సృష్టించాలనుకుంటున్నాము. అటువంటి ఫంక్షన్ యొక్క ఉపయోగం, మీరు నిరూపించాల్సిన అవసరం లేదని నేను అనుకుంటున్నాను - దాని సహాయంతో లిట్టర్ ఇన్పుట్ డేటాను క్లియర్ చేయడం చాలా సౌకర్యవంతంగా ఉంటుంది, సరియైనదా?
అయితే, మునుపటి, పునరావృతం కాని ఉదాహరణలతో పోలిస్తే, మాకు రెండు ఇబ్బందులు ఎదురు చూస్తున్నాయి.
- మేము దాని కోడ్ను వ్రాయడం ప్రారంభించే ముందు మన ఫంక్షన్కు ఒక పేరును తీసుకురావాలి, ఎందుకంటే అందులో, ఈ పేరు ఇప్పటికే ఫంక్షన్ని కాల్ చేయడానికి ఉపయోగించబడుతుంది.
- అటువంటి పునరావృత ఫంక్షన్ను సెల్లో నమోదు చేయడం మరియు LAMBDA తర్వాత బ్రాకెట్లలో ఆర్గ్యుమెంట్లను పేర్కొనడం ద్వారా డీబగ్ చేయడం (మనం ఇంతకు ముందు చేసినట్లు) పనిచేయదు. మీరు వెంటనే "మొదటి నుండి" ఫంక్షన్ని సృష్టించాలి పేరు మేనేజర్ (పేరు మేనేజర్).
మన ఫంక్షన్ని క్లీన్ అని పిలుద్దాం మరియు దానికి రెండు ఆర్గ్యుమెంట్లు ఉండాలని మేము కోరుకుంటున్నాము – శుభ్రం చేయాల్సిన వచనం మరియు మినహాయించబడిన అక్షరాల జాబితా టెక్స్ట్ స్ట్రింగ్గా ఉంటుంది:
ట్యాబ్లో మనం ఇంతకు ముందు చేసినట్లుగా సృష్టిద్దాం ఫార్ములా в పేరు మేనేజర్ పరిధిని పేరు పెట్టండి, దానికి CLEAR అని పేరు పెట్టండి మరియు ఫీల్డ్లో నమోదు చేయండి రేంజ్ కింది నిర్మాణం:
=LAMBDA(t;d;IF(d="";t;CLEAR(సబ్స్టిట్యూట్(t;LEFT(d);"");MID(d;2;255))))
ఇక్కడ వేరియబుల్ t అనేది క్లియర్ చేయవలసిన అసలు వచనం మరియు d అనేది తొలగించాల్సిన అక్షరాల జాబితా.
ఇదంతా ఇలా పనిచేస్తుంది:
పునరావృతం 1
శకలం SUBSTITUTE(t;LEFT(d);””), మీరు ఊహిస్తున్నట్లుగా, మూల వచనం tలో తొలగించాల్సిన d సెట్ నుండి ఎడమ అక్షరం నుండి మొదటి అక్షరాన్ని ఖాళీ టెక్స్ట్ స్ట్రింగ్తో భర్తీ చేస్తుంది, అనగా “ని తీసివేస్తుంది ఎ". ఇంటర్మీడియట్ ఫలితంగా, మేము పొందుతాము:
Vsh zkz n 125 రూబిళ్లు.
పునరావృతం 2
అప్పుడు ఫంక్షన్ తనను తాను పిలుస్తుంది మరియు ఇన్పుట్గా (మొదటి ఆర్గ్యుమెంట్) మునుపటి దశలో క్లీన్ చేసిన తర్వాత మిగిలి ఉన్న దాన్ని స్వీకరిస్తుంది మరియు రెండవ ఆర్గ్యుమెంట్ అనేది మినహాయించబడిన అక్షరాల స్ట్రింగ్ మొదటిది కాదు, రెండవ అక్షరం నుండి ప్రారంభమవుతుంది, అంటే “BVGDEEGZIKLMNOPRSTUFHTSCHSHSHCHYYYYA. , ప్రారంభ "A" లేకుండా - ఇది MID ఫంక్షన్ ద్వారా చేయబడుతుంది. మునుపటిలాగా, ఫంక్షన్ మిగిలిన వాటి (B) ఎడమ నుండి మొదటి అక్షరాన్ని తీసుకుంటుంది మరియు దానికి ఇచ్చిన టెక్స్ట్లో (Zkz n 125 రూబిళ్లు) ఖాళీ స్ట్రింగ్తో భర్తీ చేస్తుంది - మేము ఇంటర్మీడియట్ ఫలితంగా పొందుతాము:
125 రూ.
పునరావృతం 3
మునుపటి పునరావృతం (Bsh zkz n 125 ru.) వద్ద క్లియర్ చేయవలసిన టెక్స్ట్లో మిగిలి ఉన్న దానిని మొదటి ఆర్గ్యుమెంట్గా స్వీకరించడం ద్వారా ఫంక్షన్ మళ్లీ పిలుస్తుంది (Bsh zkz n XNUMX ru.), మరియు రెండవ ఆర్గ్యుమెంట్గా, మినహాయించబడిన అక్షరాల సమితి మరో అక్షరంతో కుదించబడింది ఎడమవైపు, అంటే "VGDEEGZIKLMNOPRSTUFHTSCHSHSHCHYYYUYA.," ప్రారంభ "B" లేకుండా. అది మళ్లీ ఈ సెట్ నుండి ఎడమ (B) నుండి మొదటి అక్షరాన్ని తీసుకుంటుంది మరియు దానిని టెక్స్ట్ నుండి తీసివేస్తుంది - మనకు లభిస్తుంది:
sh zkz n 125 ru.
మరియు అందువలన న - నేను మీరు ఆలోచన కలిగి ఆశిస్తున్నాము. ప్రతి పునరావృతంతో, తీసివేయవలసిన అక్షరాల జాబితా ఎడమ వైపున కత్తిరించబడుతుంది మరియు మేము సెట్ నుండి తదుపరి అక్షరాన్ని శూన్యంతో శోధించి భర్తీ చేస్తాము.
అన్ని అక్షరాలు అయిపోయినప్పుడు, మేము లూప్ నుండి నిష్క్రమించవలసి ఉంటుంది - ఈ పాత్ర కేవలం ఫంక్షన్ ద్వారా నిర్వహించబడుతుంది IF (IF), దీనిలో మా డిజైన్ చుట్టబడి ఉంటుంది. తొలగించడానికి అక్షరాలు మిగిలి ఉండకపోతే (d=””), అప్పుడు ఫంక్షన్ ఇకపై తనకు తానుగా కాల్ చేయకూడదు, కానీ టెక్స్ట్ను క్లియర్ చేయడానికి (వేరియబుల్ t) దాని తుది రూపంలో తిరిగి ఇవ్వాలి.
కణాల పునరావృత పునరావృతం
అదేవిధంగా, మీరు ఇచ్చిన పరిధిలో కణాల పునరావృత గణనను అమలు చేయవచ్చు. అనే లాంబ్డా ఫంక్షన్ని సృష్టించాలని అనుకుందాం భర్తీ జాబితా ఇచ్చిన సూచన జాబితా ప్రకారం సోర్స్ టెక్స్ట్లోని శకలాలను టోకుగా భర్తీ చేయడం కోసం. ఫలితం ఇలా ఉండాలి:
ఆ. మా ఫంక్షన్ వద్ద భర్తీ జాబితా మూడు వాదనలు ఉంటాయి:
- ప్రాసెస్ చేయడానికి టెక్స్ట్ ఉన్న సెల్ (మూల చిరునామా)
- శోధన నుండి శోధించడానికి విలువలతో నిలువు వరుస యొక్క మొదటి సెల్
- శోధన నుండి భర్తీ విలువలతో నిలువు వరుస యొక్క మొదటి సెల్
ఫంక్షన్ డైరెక్టరీలో పై నుండి క్రిందికి వెళ్లాలి మరియు ఎడమ కాలమ్ నుండి అన్ని ఎంపికలను వరుసగా భర్తీ చేయాలి కనుగొనేందుకు కుడి కాలమ్ నుండి సంబంధిత ఎంపికలకు సబ్స్టిట్యూట్. మీరు దీన్ని క్రింది పునరావృత లాంబ్డా ఫంక్షన్తో అమలు చేయవచ్చు:
ప్రతి పునరావృతం వద్ద షిఫ్ట్ డౌన్ ప్రామాణిక ఎక్సెల్ ఫంక్షన్ ద్వారా అమలు చేయబడుతుంది డిస్పోసల్ (OFFSET), ఈ సందర్భంలో మూడు వాదనలు ఉన్నాయి - అసలు పరిధి, అడ్డు వరుస షిఫ్ట్ (1) మరియు నిలువు వరుస షిఫ్ట్ (0).
సరే, మనం డైరెక్టరీ (n = "") ముగింపుకు చేరుకున్న వెంటనే, మనం పునరావృత్తిని ముగించాలి - మనం కాల్ చేయడం ఆపివేస్తాము మరియు సోర్స్ టెక్స్ట్ వేరియబుల్ tలో అన్ని రీప్లేస్మెంట్ల తర్వాత సేకరించిన వాటిని ప్రదర్శిస్తాము.
అంతే. గమ్మత్తైన మాక్రోలు లేదా పవర్ క్వెరీ ప్రశ్నలు లేవు - మొత్తం పని ఒక ఫంక్షన్ ద్వారా పరిష్కరించబడుతుంది.
- Excel యొక్క కొత్త డైనమిక్ అర్రే ఫంక్షన్లను ఎలా ఉపయోగించాలి: FILTER, SORT, UNIC
- SUBSTITUTE ఫంక్షన్తో వచనాన్ని భర్తీ చేయడం మరియు శుభ్రపరచడం
- VBAలో మాక్రోలు మరియు యూజర్-డిఫైన్డ్ ఫంక్షన్లను (UDFలు) సృష్టించడం