LAMBDA የ Excel አዲስ ሱፐር ተግባር ነው።

በአሁኑ ጊዜ ማይክሮሶፍት ኤክሴል ወደ አምስት መቶ የሚጠጉ የስራ ሉህ ተግባራት በFunction Wizard መስኮት በኩል ይገኛሉ - ቁልፍ fx በቀመር አሞሌ ውስጥ. ይህ በጣም ጨዋ ስብስብ ነው, ነገር ግን, ነገር ግን, ሁሉም ማለት ይቻላል ፈጥኖም ሆነ ዘግይቶ ይህ ዝርዝር የሚፈልገውን ተግባር የማይይዝበት ሁኔታ ያጋጥመዋል - በቀላሉ በኤክሴል ውስጥ የለም.

እስካሁን ድረስ ይህንን ችግር ለመፍታት ብቸኛው መንገድ ማክሮዎች ማለትም የራስዎን በተጠቃሚ የተገለጸ ተግባር (UDF = User Defined Function) በ Visual Basic ውስጥ መፃፍ ተገቢ የሆነ የፕሮግራም አወጣጥ ክህሎትን የሚጠይቅ እና አንዳንዴም ቀላል አይደለም። ሆኖም ግን, በቅርብ ጊዜ የ Office 365 ዝመናዎች, ሁኔታው ​​በተሻለ ሁኔታ ተለውጧል - ልዩ "መጠቅለያ" ተግባር ወደ ኤክሴል ተጨምሯል. LAMBDA. በእሱ እርዳታ የእራስዎን ተግባራት የመፍጠር ተግባር አሁን በቀላሉ እና በሚያምር ሁኔታ ተፈትቷል.

በሚከተለው ምሳሌ የአጠቃቀሙን መርህ እንመልከት።

እርስዎ እንደሚያውቁት፣ ኤክሴል ለተወሰነ ቀን የቀን፣ ወር፣ ሳምንት እና ዓመት ብዛት እንዲወስኑ የሚያስችልዎ በርካታ የቀን መተንተን ተግባራት አሉት። ግን በሆነ ምክንያት የሩብ ቁጥርን የሚወስን ምንም ተግባር የለም, እሱም ደግሞ ብዙውን ጊዜ አስፈላጊ ነው, አይደል? ይህንን ጉድለት አስተካክለን እንፍጠር LAMBDA ይህንን ችግር ለመፍታት የራሱ አዲስ ተግባር።

ደረጃ 1. ቀመሩን ይጻፉ

በተለመደው መንገድ በእጅ የምንፈልገውን ነገር የሚያሰላውን በሉህ ሕዋስ ውስጥ ቀመር እንጽፋለን የሚለውን እውነታ እንጀምር። የሩብ ቁጥርን በተመለከተ ፣ ይህ ሊከናወን ይችላል ፣ ለምሳሌ ፣

LAMBDA የኤክሴል አዲስ ሱፐር ተግባር ነው።

ደረጃ 2. በ LAMBDA ውስጥ መጠቅለል እና መሞከር

አሁን አዲሱን የLAMBDA ተግባር መተግበር እና ቀመራችንን በውስጡ መጠቅለል ጊዜው ነው። የተግባር አገባብ እንደሚከተለው ነው።

= LAMBDA(ተለዋዋጭ1; ተለዋዋጭ2፤ … ተለዋዋጭ ኤን ; ቃል)

የአንድ ወይም የበለጡ ተለዋዋጮች ስም በመጀመሪያ የተዘረዘሩበት እና የመጨረሻው ነጋሪ እሴት ሁል ጊዜ ቀመር ወይም የተሰላ አገላለጽ ነው። ተለዋዋጭ ስሞች የሕዋስ አድራሻዎችን መምሰል የለባቸውም እና ነጥቦችን መያዝ የለባቸውም።

በእኛ ሁኔታ, አንድ ተለዋዋጭ ብቻ ይኖራል - የሩብ ቁጥርን የምናሰላበት ቀን. ተለዋዋጩን እንጥራለት፣ እንበል፣ መ. ከዚያም የእኛን ፎርሙላ በተግባር መጠቅለል LAMBDA እና የዋናውን ሕዋስ A2 አድራሻ በሃሳዊ ተለዋዋጭ ስም በመተካት፡-

LAMBDA የኤክሴል አዲስ ሱፐር ተግባር ነው።

እባክዎን ከእንደዚህ አይነት ለውጥ በኋላ የእኛ ቀመር (በእውነቱ, ትክክል!) ስህተት መስራት እንደጀመረ ያስተውሉ, ምክንያቱም አሁን ከሴል A2 የመጀመሪያው ቀን ወደ እሱ አልተላለፈም. ለሙከራ እና ለመተማመን, ከተግባሩ በኋላ በማከል ክርክሮችን ማለፍ ይችላሉ LAMBDA በቅንፍ ውስጥ፡-

LAMBDA የኤክሴል አዲስ ሱፐር ተግባር ነው።

ደረጃ 3. ስም ይፍጠሩ

አሁን ለቀላል እና አስደሳች ክፍል። እንከፍተዋለን የስም አስተዳዳሪ ትር ፎርሙላ (ቀመሮች - ስም አስተዳዳሪ) እና በአዝራሩ አዲስ ስም ይፍጠሩ ፈጠረ (ፍጠር). ይምጡ እና ለወደፊት ተግባራችን ስም ያስገቡ (ለምሳሌ፡- Nomkvartala) እና በመስክ ላይ ማያያዣ (ዋቢ) ከቀመር አሞሌው በጥንቃቄ ይቅዱ እና ተግባራችንን ይለጥፉ LAMBDAያለ የመጨረሻው መከራከሪያ (A2) ብቻ፡-

LAMBDA የኤክሴል አዲስ ሱፐር ተግባር ነው።

ሁሉም ነገር። ላይ ጠቅ ካደረጉ በኋላ OK የተፈጠረው ተግባር በማንኛውም የዚህ የሥራ መጽሐፍ ሉህ ላይ በማንኛውም ሕዋስ ውስጥ ሊያገለግል ይችላል፡-

LAMBDA የኤክሴል አዲስ ሱፐር ተግባር ነው።

በሌሎች መጽሃፎች ውስጥ ተጠቀም

ጋር ስለተፈጠረ LAMBDA በተጠቃሚ የተገለጹ ተግባራት በእውነቱ የተሰየሙ ክልሎች ስለሆኑ አሁን ባለው የስራ ደብተር ውስጥ ብቻ ሳይሆን በቀላሉ እንዲገኙ ማድረግ ይችላሉ። ህዋሱን ከተግባሩ ጋር መቅዳት እና በሌላ ፋይል ሉህ ውስጥ በማንኛውም ቦታ ለመለጠፍ በቂ ይሆናል።

LAMBDA እና ተለዋዋጭ ድርድሮች

ከተግባር ጋር የተፈጠሩ ብጁ ተግባራት LAMBDA ሥራን በተሳካ ሁኔታ በአዲስ ተለዋዋጭ ድርድሮች እና ተግባሮቻቸውን ይደግፋል (FILTER, UNIK, ) በ2020 ወደ ማይክሮሶፍት ኤክሴል ታክሏል።

ሁለት ዝርዝሮችን የሚያነፃፅር እና በመካከላቸው ያለውን ልዩነት የሚመልስ አዲስ በተጠቃሚ የተገለጸ ተግባር መፍጠር እንፈልጋለን እንበል - በሁለተኛው ውስጥ የሌሉት ከመጀመሪያው ዝርዝር ውስጥ ያሉት ንጥረ ነገሮች። የህይወት ስራ ነው አይደል? ከዚህ ቀደም, ለዚህም ሁለቱንም ተግባራት a la ይጠቀሙ ነበር VPR (VLOOKUP)፣ ወይም PivotTables ፣ ወይም የኃይል መጠይቅ መጠይቆች። አሁን በአንድ ቀመር ማድረግ ይችላሉ:

LAMBDA የኤክሴል አዲስ ሱፐር ተግባር ነው።

በእንግሊዝኛው እትም ውስጥ የሚከተለው ይሆናል-

=LAMBDA(a;b;ФИЛЬТР(a;СЧЁТЕСЛИ(b;a)=0))(A1:A6;C1:C10)

እዚህ ተግባሩ COUNTIF በሁለተኛው ውስጥ የመጀመሪያው ዝርዝር የእያንዳንዱ አካል ክስተቶች ብዛት እና ከዚያም ተግባሩን ይቆጥራል። FILTER ከእነዚህ ውስጥ እነዚህ ክስተቶች ያልነበሩትን ብቻ ይመርጣል. ይህንን መዋቅር በመጠቅለል LAMBDA እና በእሱ ላይ በመመስረት የተሰየመ ክልል መፍጠር በስም ፣ ለምሳሌ ፣ የፍለጋ ስርጭት - ሁለት ዝርዝሮችን በተለዋዋጭ ድርድር መልክ የማነፃፀር ውጤቱን የሚመልስ ምቹ ተግባር እናገኛለን-

LAMBDA የኤክሴል አዲስ ሱፐር ተግባር ነው።

የምንጭ መረጃው ተራ ካልሆነ ግን “ብልጥ” ሰንጠረዦች ከሆነ ተግባራችን ያለችግር ይቋቋማል።

LAMBDA የኤክሴል አዲስ ሱፐር ተግባር ነው።

ሌላው ምሳሌ በቅርቡ የተተነተንነውን የFILTER.XML ተግባር በመጠቀም ፅሁፉን ወደ ኤክስኤምኤል በመቀየር እና ሕዋስ በሴል በመተንተን በተለዋዋጭ መንገድ መከፋፈል ነው። ይህንን ውስብስብ ፎርሙላ በእያንዲንደ ጊዜ በእጅ ላለመባዛት ፣ በ LAMBDA ውስጥ መጠቅለል እና በእሱ ላይ የተመሠረተ ተለዋዋጭ ክልል መፍጠር ቀላል ይሆናል ፣ ማለትም አዲስ የታመቀ እና ምቹ ተግባር ፣ በመሰየም ፣ ለምሳሌ ፣ RAZDTEXT:

LAMBDA የኤክሴል አዲስ ሱፐር ተግባር ነው።

የዚህ ተግባር የመጀመሪያው መከራከሪያ ከምንጩ ጽሑፍ ጋር ያለው ሕዋስ, እና ሁለተኛው - የመለያያ ቁምፊ ይሆናል, እና ውጤቱን በአግድም ተለዋዋጭ ድርድር መልክ ይመልሳል. የተግባር ኮድ እንደሚከተለው ይሆናል.

= LAMBDA(t;d; አስተላልፍ(ማጣሪያ.ኤክስኤምኤል(""&ተተኪ(t;d? "")&"";"//Y")))

የምሳሌዎች ዝርዝር ማለቂያ የለውም - ብዙ ጊዜ ተመሳሳይ ረጅም እና አስቸጋሪ ቀመር ውስጥ ማስገባት በሚኖርበት በማንኛውም ሁኔታ ውስጥ የ LAMBDA ተግባር ህይወትን ቀላል ያደርገዋል.

የቁምፊዎች ተደጋጋሚ ቆጠራ

ሁሉም የቀደሙ ምሳሌዎች የ LAMBDA ተግባርን አንድ ፣ በጣም ግልፅ ፣ ጎን ብቻ አሳይተዋል - እንደ “መጠቅለያ” ረጅም ቀመሮችን በውስጡ ለመጠቅለል እና ግባቸውን ለማቃለል ይጠቅማል። በእርግጥ፣ LAMBDA ሌላ፣ በጣም ጠለቅ ያለ፣ ወደ ሙሉ የፕሮግራም አወጣጥ ቋንቋ የሚቀይረው ጎን አለው።

እውነታው ግን የLAMBDA ተግባራት መሰረታዊ አስፈላጊ ባህሪ እነሱን የመተግበር ችሎታ ነው። ተደጋጋሚነት - የስሌቶች አመክንዮ ፣ በስሌቱ ሂደት ውስጥ ተግባሩ እራሱን ሲጠራ። ከልማዱ፣ ዘግናኝ ሊመስል ይችላል፣ ነገር ግን በፕሮግራም አወጣጥ፣ መደጋገም የተለመደ ነገር ነው። በ Visual Basic ውስጥ በማክሮዎች ውስጥ እንኳን, ሊተገብሩት ይችላሉ, እና አሁን, እንደሚመለከቱት, ወደ ኤክሴል መጥቷል. ይህንን ዘዴ በተግባራዊ ምሳሌ ለመረዳት እንሞክር.

ሁሉንም የተሰጡ ቁምፊዎች ከምንጩ ጽሑፍ የሚያጠፋ በተጠቃሚ የተገለጸ ተግባር መፍጠር እንፈልጋለን እንበል። የእንደዚህ አይነት ተግባር ጠቃሚነት, እኔ እንደማስበው, ማረጋገጥ አያስፈልገዎትም - በእሱ እርዳታ የቆሻሻ መጣያ ውሂብን ለማጽዳት በጣም አመቺ ይሆናል, አይደል?

ሆኖም ፣ ከቀዳሚው ፣ የማይደጋገሙ ምሳሌዎች ጋር ሲነፃፀሩ ሁለት ችግሮች ይጠብቁናል።

  1. የእሱን ኮድ መጻፍ ከመጀመራችን በፊት ለተግባራችን ስም ማውጣት አለብን, ምክንያቱም በእሱ ውስጥ, ይህ ስም ቀድሞውኑ ተግባሩን ለመጥራት ጥቅም ላይ ይውላል.
  2. እንዲህ ዓይነቱን ተደጋጋሚ ተግባር ወደ ሴል ውስጥ ማስገባት እና ማረም ከ LAMBDA በኋላ በቅንፍ ውስጥ ክርክሮችን በመግለጽ (ከዚህ ቀደም እንዳደረግነው) አይሰራም። ወዲያውኑ "ከባዶ" ውስጥ አንድ ተግባር መፍጠር አለብዎት የስም አስተዳዳሪ (ስም አስተዳዳሪ).

ተግባራችንን እንጥራው፣ አጽዳ እና ሁለት ክርክሮች እንዲኖሩት እንፈልጋለን - ጽሑፉ እንዲጸዳ እና የተገለሉ ቁምፊዎች ዝርዝር እንደ የጽሑፍ ሕብረቁምፊ።

LAMBDA የኤክሴል አዲስ ሱፐር ተግባር ነው።

አስቀድመን እንዳደረግነው በትሩ ላይ እንፍጠር ፎርሙላ в ስም አስተዳዳሪ ክልል የተሰየመ ፣ ስሙን አጽዳ እና መስክ ውስጥ ያስገቡ ርቀት የሚከተለው ግንባታ:

=LAMBDA(t;d;IF(d=""t;አጽዳ(ተተኪ(t;ግራ(መ);"");መካከለኛ(d;2;255))))

እዚህ ተለዋዋጭ t የሚጸዳው የመጀመሪያው ጽሑፍ ነው, እና መ የሚሰረዙ የቁምፊዎች ዝርዝር ነው.

ሁሉም እንደዚህ ይሰራል

ልዩነት 1

ቁርጥራጩ SUBSTITUTE(t;LEFT(d);””)፣ እርስዎ እንደሚገምቱት፣ ከግራ ቁምፊ የመጀመሪያውን ቁምፊ ከስብስቡ d የሚጠፋውን ከምንጩ ጽሑፍ t በባዶ የጽሑፍ ሕብረቁምፊ ይተካዋል፣ ማለትም ““ን ያስወግዳል። ሀ" እንደ መካከለኛ ውጤት ፣ እኛ እናገኛለን-

Vsh zkz n 125 ሩብልስ.

ልዩነት 2

ከዚያም ተግባሩ እራሱን ይጠራዋል ​​እና እንደ ግብአት (የመጀመሪያው ክርክር) በቀደመው ደረጃ ካጸዳ በኋላ የቀረውን ይቀበላል, ሁለተኛው መከራከሪያ ከመጀመሪያው ሳይሆን ከሁለተኛው ቁምፊ የሚጀምሩ ያልተካተቱ ቁምፊዎች ሕብረቁምፊ ነው, ማለትም "BVGDEEGZIKLMNOPRSTUFHTSCHSHSHSHYYYYA. , ያለ መጀመሪያው "A" - ይህ የሚደረገው በ MID ተግባር ነው. እንደበፊቱ ሁሉ ተግባሩ ከቀሪዎቹ (B) በግራ በኩል የመጀመሪያውን ቁምፊ ይወስዳል እና በተሰጠው ጽሑፍ (Zkz n 125 ሩብልስ) በባዶ ሕብረቁምፊ ይተካዋል - እንደ መካከለኛ ውጤት እናገኛለን:

125 ሩ.

ልዩነት 3

ተግባሩ እንደገና እራሱን ይጠራዋል, ከጽሑፉ የተረፈውን በቀድሞው ድግግሞሽ (Bsh zkz n 125 ru.) ላይ የሚጸዳውን እንደ መጀመሪያው መከራከሪያ ይቀበላል, እና እንደ ሁለተኛው መከራከሪያ, የተገለሉ ቁምፊዎች ስብስብ በአንድ ተጨማሪ ቁምፊ ተቆርጧል. ግራ፣ ማለትም “VGDEEGZIKLMNOPRSTUFHTSCHSHSHCHYYYYUYA”፣ ያለመጀመሪያው “ቢ”። ከዚያ እንደገና የመጀመሪያውን ቁምፊ ከግራ (B) ከዚህ ስብስብ ወስዶ ከጽሑፉ ያስወግደዋል - እኛ እናገኛለን-

sh zkz n 125 ru.

እና ወዘተ - ሀሳቡን እንደሚያገኙ ተስፋ አደርጋለሁ. በእያንዳንዱ ድግግሞሽ ፣ የሚወገዱ ቁምፊዎች ዝርዝር በግራ በኩል ይቆረጣል ፣ እና የሚቀጥለውን ቁምፊ ከስብስቡ ባዶ እንፈልገዋለን እና እንተካለን።

ሁሉም ቁምፊዎች ሲያልቅ, ዑደቱን መውጣት አለብን - ይህ ሚና የሚከናወነው በተግባሩ ብቻ ነው IF (ከሆነ), የእኛ ንድፍ የታሸገበት. ለመሰረዝ ምንም ፊደላት ከሌሉ (d=”)፣ ከዚያ ተግባሩ ከአሁን በኋላ እራሱን መጥራት የለበትም፣ ነገር ግን በቀላሉ ጽሑፉን ለማጽዳት (ተለዋዋጭ t) በመጨረሻው ቅጽ መመለስ አለበት።

የሴሎች ተደጋጋሚ ድግግሞሽ

በተመሳሳይ፣ በተወሰነ ክልል ውስጥ የሕዋሶችን ተደጋጋሚ ቆጠራ መተግበር ይችላሉ። የተሰየመ ላምዳ ተግባር መፍጠር እንፈልጋለን እንበል የምትክ ዝርዝር በተሰጠው የማመሳከሪያ ዝርዝር መሠረት በምንጭ ጽሑፍ ውስጥ ያሉትን ቁርጥራጮች በጅምላ ለመተካት. ውጤቱ እንደዚህ መሆን አለበት.

LAMBDA የኤክሴል አዲስ ሱፐር ተግባር ነው።

እነዚያ። በእኛ ተግባር የምትክ ዝርዝር ሶስት ክርክሮች ይኖራሉ፡-

  1. ከጽሑፍ ወደ ሂደት (ምንጭ አድራሻ) ያለው ሕዋስ
  2. ከፍለጋው ለመፈለግ እሴቶች ያለው የአምድ የመጀመሪያ ሕዋስ
  3. የአምዱ የመጀመሪያ ሕዋስ ከፍለጋው ምትክ ዋጋዎች ጋር

ተግባሩ በማውጫው ውስጥ ከላይ ወደ ታች መሄድ እና ከግራ አምድ ውስጥ ያሉትን ሁሉንም አማራጮች በቅደም ተከተል መተካት አለበት ማግኘት ከቀኝ ዓምድ ወደ ተጓዳኝ አማራጮች ምትክ. ይህንን በሚከተለው ተደጋጋሚ ላምዳ ተግባር መተግበር ይችላሉ።

LAMBDA የኤክሴል አዲስ ሱፐር ተግባር ነው።

እዚህ, ተለዋዋጭ t ዋናውን ጽሑፍ ከሚቀጥለው የአምድ ሕዋስ ያከማቻል አድራሻ, እና ተለዋዋጮች n እና z በአምዶች ውስጥ ወደ መጀመሪያዎቹ ሴሎች ያመለክታሉ ማግኘት и ምትክ, ይቀጥላል.
ልክ እንደ ቀደመው ምሳሌ, ይህ ተግባር በመጀመሪያ ዋናውን ጽሑፍ በተግባሩ ይተካዋል ንዑስ ትምህርት (ተተኪ) በማውጫው የመጀመሪያ መስመር ላይ ያለ ውሂብ (ማለትም ኤስ.ፒ.ቢon ቅዱስ ፒተርስበርግ) እና ከዚያ እራሱን ይደውላል፣ ነገር ግን በማውጫው ውስጥ ወደ ቀጣዩ መስመር በመቀየር (ማለትም ይተካል። ቅዱስ ፒተርስበርግ on ቅዱስ ፒተርስበርግ). ከዚያ ወደታች በመቀየር እራሱን እንደገና ይደውላል - እና ቀድሞውን ይተካል። ጴጥሮስ on ቅዱስ ፒተርስበርግ ወዘተ

በእያንዳንዱ ድግግሞሹ ወደ ታች መቀየር በመደበኛ የ Excel ተግባር ይተገበራል። ክርክር (OFFSET), በዚህ ጉዳይ ላይ ሶስት ነጋሪ እሴቶች አሉት - የመጀመሪያው ክልል, የረድፍ ለውጥ (1) እና የአምድ ለውጥ (0).

ደህና, ልክ የማውጫው መጨረሻ (n = "") ላይ እንደደረስን, ተደጋጋሚውን ማቆም አለብን - እራሳችንን መጥራት እናቆማለን እና በመነሻ ጽሑፍ ተለዋዋጭ t ውስጥ ከተተካ በኋላ የተከማቸ ነገርን እናሳያለን.

ይኼው ነው. ምንም ተንኮለኛ ማክሮዎች ወይም የኃይል መጠይቅ ጥያቄዎች የሉም - አጠቃላይ ስራው በአንድ ተግባር ተፈቷል።

  • የExcelን አዲሱን ተለዋዋጭ አደራደር እንዴት መጠቀም እንደሚቻል፡- FILTER፣ SORT፣ UNIC
  • በSUBSTITUTE ተግባር ጽሑፍን መተካት እና ማጽዳት
  • በVBA ውስጥ ማክሮዎችን እና በተጠቃሚ የተገለጹ ተግባራትን (UDFs) መፍጠር

መልስ ይስጡ