LAMBDA යනු Excel හි නව සුපිරි කාර්යයයි

මේ වන විට, මයික්‍රොසොෆ්ට් එක්සෙල් Function Wizard කවුළුව හරහා වැඩ පත්‍රිකා පන්සියයකට ආසන්න කාර්යයන් ඇත - බොත්තම fx සූත්‍ර තීරුවේ. මෙය ඉතා විනීත කට්ටලයක් වන නමුත්, කෙසේ වෙතත්, සෑම පරිශීලකයෙකුම පාහේ ඉක්මනින් හෝ පසුව මෙම ලැයිස්තුවේ ඔහුට අවශ්‍ය කාර්යය අඩංගු නොවන තත්වයක් ඇති වේ - එය Excel හි නොමැති නිසා.

මෙතෙක්, මෙම ගැටළුව විසඳීමට ඇති එකම ක්‍රමය මැක්‍රෝස් ය, එනම් සුදුසු ක්‍රමලේඛන කුසලතා අවශ්‍ය වන සහ ඇතැම් විට එය කිසිසේත් පහසු නොවන Visual Basic හි ඔබේම පරිශීලක-නිර්වචනය කළ කාර්යය (UDF = පරිශීලක අර්ථ දක්වා ඇති කාර්යය) ලිවීමයි. කෙසේ වෙතත්, නවතම Office 365 යාවත්කාලීන කිරීම් සමඟ, තත්වය වඩා හොඳ සඳහා වෙනස් වී ඇත - Excel වෙත විශේෂ "දවුම්" ශ්රිතයක් එකතු කර ඇත. ලැම්බඩා. එහි ආධාරයෙන්, ඔබේම කාර්යයන් නිර්මාණය කිරීමේ කාර්යය දැන් පහසුවෙන් සහ අලංකාර ලෙස විසඳා ඇත.

පහත උදාහරණයෙන් එය භාවිතා කිරීමේ මූලධර්මය දෙස බලමු.

ඔබ බොහෝදුරට දන්නා පරිදි, Excel සතුව දින විග්‍රහ කිරීමේ ක්‍රියාකාරකම් කිහිපයක් ඇති අතර එය ලබා දී ඇති දිනයක් සඳහා දින, මාසය, සතිය සහ වසර ගණන තීරණය කිරීමට ඔබට ඉඩ සලසයි. නමුත් කිසියම් හේතුවක් නිසා කාර්තුවේ අංකය තීරණය කරන කාර්යයක් නොමැත, එයද බොහෝ විට අවශ්ය වේ, හරිද? අපි මෙම අඩුපාඩුව සකස් කර නිර්මාණය කරමු ලැම්බඩා මෙම ගැටළුව විසඳීම සඳහා නව කාර්යයක්.

පියවර 1. සූත්රය ලියන්න

සුපුරුදු ආකාරයෙන් අපි අතින් අපට අවශ්‍ය දේ ගණනය කරන පත්‍ර කොටුවක සූත්‍රයක් ලියන බව සමඟ ආරම්භ කරමු. කාර්තුවේ අංකය සම්බන්ධයෙන්, මෙය කළ හැකිය, උදාහරණයක් ලෙස, මේ වගේ:

LAMBDA යනු Excels New Super Function වේ

පියවර 2. LAMBDA හි ඔතා පරීක්ෂා කිරීම

දැන් නව LAMBDA ශ්‍රිතය යෙදීමට සහ අපගේ සූත්‍රය එහි එතීමට කාලයයි. ශ්‍රිත වාක්‍ය ඛණ්ඩය පහත පරිදි වේ:

=LAMBDA(විචල්ය 1; විචල්ය 2; … VariableN ; ප්රකාශනය)

එහිදී විචල්‍ය එකක හෝ වැඩි ගණනක නම් පළමුව ලැයිස්තුගත කර ඇති අතර, අවසාන තර්කය සෑම විටම ඒවා භාවිතා කරන සූත්‍රයක් හෝ ගණනය කළ ප්‍රකාශනයක් වේ. විචල්‍ය නම් සෛල ලිපින මෙන් නොවිය යුතු අතර තිත් අඩංගු නොවිය යුතුය.

අපගේ නඩුවේදී, එක් විචල්යයක් පමණක් වනු ඇත - අපි කාර්තුවේ අංකය ගණනය කරන දිනය. ඒකට variable එක කියමු, d කියල. ඉන්පසු අපගේ සූත්‍රය ශ්‍රිතයක එතීම ලැම්බඩා සහ මුල් සෛල A2 හි ලිපිනය කල්පිත විචල්‍ය නාමයක් සමඟ ආදේශ කිරීමෙන් අපට ලැබෙන්නේ:

LAMBDA යනු Excels New Super Function වේ

එවැනි පරිවර්තනයකින් පසුව, අපගේ සූත්‍රය (ඇත්ත වශයෙන්ම, නිවැරදි!) දෝෂයක් ඇති කිරීමට පටන් ගත් බව කරුණාවෙන් සලකන්න, මන්ද දැන් A2 කොටුවේ මුල් දිනය එයට මාරු නොවේ. පරීක්ෂා කිරීම සහ විශ්වාසය සඳහා, ඔබට ශ්‍රිතයෙන් පසුව ඒවා එකතු කිරීමෙන් එයට තර්ක ඉදිරිපත් කළ හැකිය ලැම්බඩා වරහන් තුළ:

LAMBDA යනු Excels New Super Function වේ

පියවර 3. නමක් සාදන්න

දැන් පහසු සහ විනෝදජනක කොටස සඳහා. අපි විවෘත කරනවා නම කළමනාකරු ටැබ් සූත්රය (සූත්‍ර - නාම කළමනාකරු) සහ බොත්තම සමඟ නව නමක් සාදන්න නිර්මාණය (සාදන්න). අපගේ අනාගත කාර්යය සඳහා නමක් ඉදිරිපත් කර ඇතුල් කරන්න (උදාහරණයක් ලෙස, නොම්ක්වර්ටල), සහ ක්ෂේත්රයේ ලින්ක් (යොමුව) සූත්‍ර තීරුවෙන් ප්‍රවේශමෙන් පිටපත් කර අපගේ කාර්යය අලවන්න ලැම්බඩා, අවසාන තර්කය නොමැතිව පමණි (A2):

LAMBDA යනු Excels New Super Function වේ

සියල්ල. ක්ලික් කිරීමෙන් පසු OK සාදන ලද කාර්යය මෙම වැඩපොතේ ඕනෑම පත්‍රිකාවක ඕනෑම සෛලයක භාවිතා කළ හැක:

LAMBDA යනු Excels New Super Function වේ

වෙනත් පොත්වල භාවිතා කරන්න

සමඟ නිර්මාණය වූ නිසා ලැම්බඩා පරිශීලක-නිර්වචනය කරන ලද කාර්යයන් ඇත්ත වශයෙන්ම නම් කර ඇති පරාසයන් බැවින්, ඔබට ඒවා වත්මන් වැඩපොතෙහි පමණක් නොව පහසුවෙන් ලබා ගත හැක. ශ්‍රිතය සමඟ සෛලය පිටපත් කර වෙනත් ගොනුවක පත්‍රයේ ඕනෑම තැනක ඇලවීමට එය ප්‍රමාණවත් වේ.

LAMBDA සහ ගතික අරා

ශ්‍රිතයක් සමඟින් සාදන ලද අභිරුචි ශ්‍රිත ලැම්බඩා නව ගතික අරා සහ ඒවායේ ක්‍රියාකාරකම් සමඟ වැඩ කිරීමට සාර්ථකව සහාය දක්වයි (ෆිල්ටරය, UNIK, ශ්රේණියේ) 2020 දී Microsoft Excel වෙත එක් කරන ලදී.

ලැයිස්තු දෙකක් සංසන්දනය කර ඒවා අතර වෙනස ලබා දෙන නව පරිශීලක-නිර්වචනය කළ ශ්‍රිතයක් සෑදීමට අපට අවශ්‍ය යැයි සිතමු - පළමු ලැයිස්තුවේ ඇති මූලද්‍රව්‍ය දෙවන ලැයිස්තුවේ නොමැත. ජීවිතේ වැඩක් නේද? මීට පෙර, මේ සඳහා ඔවුන් a la ශ්‍රිතයන් භාවිතා කළහ VPR (VLOOKUP), හෝ PivotTables, හෝ Power Query විමසුම්. දැන් ඔබට එක් සූත්‍රයක් සමඟ කළ හැකිය:

LAMBDA යනු Excels New Super Function වේ

ඉංග්රීසි අනුවාදයේ එය වනු ඇත:

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

මෙන්න කාර්යය COUNTIF දෙවන ලැයිස්තුවේ පළමු ලැයිස්තුවේ එක් එක් මූලද්‍රව්‍යයේ සිදුවීම් ගණන ගණන් කරයි, පසුව ශ්‍රිතය ෆිල්ටරය ඔවුන්ගෙන් මෙම සිදුවීම් නොමැති අය පමණක් තෝරා ගනී. මෙම ව්යුහය එතීමෙන් ලැම්බඩා සහ එය මත පදනම්ව නම් කරන ලද පරාසයක් නිර්මාණය කිරීම, උදාහරණයක් ලෙස, සෙවුම් බෙදාහැරීම - ගතික අරාවක ස්වරූපයෙන් ලැයිස්තු දෙකක් සංසන්දනය කිරීමේ ප්‍රතිඵලය ලබා දෙන පහසු කාර්යයක් අපට ලැබෙනු ඇත:

LAMBDA යනු Excels New Super Function වේ

මූලාශ්‍ර දත්ත සාමාන්‍ය නොවේ නම්, නමුත් “ස්මාර්ට්” වගු නම්, අපගේ ක්‍රියාකාරිත්වය ද ගැටළු නොමැතිව මුහුණ දෙනු ඇත:

LAMBDA යනු Excels New Super Function වේ

තවත් උදාහරණයක් නම් අපි මෑතකදී විග්‍රහ කළ FILTER.XML ශ්‍රිතය භාවිතයෙන් පෙළ XML බවට පරිවර්තනය කිරීමෙන් ගතිකව බෙදීම සහ සෛලයෙන් සෛලය විග්‍රහ කිරීමයි. මෙම සංකීර්ණ සූත්‍රය සෑම විටම අතින් ප්‍රතිනිෂ්පාදනය නොකිරීමට, එය LAMBDA හි ඔතා එය මත පදනම්ව ගතික පරාසයක් නිර්මාණය කිරීම පහසු වනු ඇත, එනම් නව සංයුක්ත සහ පහසු කාර්යයක්, එය නම් කිරීම, උදාහරණයක් ලෙස, RAZDTEXT:

LAMBDA යනු Excels New Super Function වේ

මෙම ශ්රිතයේ පළමු තර්කය මූලාශ්ර පාඨය සහිත සෛලය වන අතර, දෙවන - බෙදුම්කරු චරිතය වන අතර, එය තිරස් ගතික අරාවක ආකාරයෙන් ප්රතිඵලය නැවත ලබා දෙනු ඇත. කාර්යය කේතය පහත පරිදි වනු ඇත:

=LAMBDA(t;d; පරිවර්තනය(ෆිල්ටර්.XML(""&ආදේශක(t;d? "«)&»";"//Y")))

උදාහරණ ලැයිස්තුව නිමක් නැත - ඔබට බොහෝ විට එකම දිගු හා අපහසු සූත්‍රය ඇතුළත් කිරීමට සිදුවන ඕනෑම අවස්ථාවක, LAMBDA ශ්‍රිතය ජීවිතය සැලකිය යුතු ලෙස පහසු කරයි.

පුනරාවර්තන චරිත ගණනය කිරීම

සියලුම පෙර උදාහරණ වලින් පෙන්නුම් කර ඇත්තේ LAMBDA ශ්‍රිතයේ වඩාත්ම පැහැදිලිව පෙනෙන පැත්තක් පමණි - එහි දිගු සූත්‍ර එතීමට සහ ඒවායේ ආදානය සරල කිරීමට "එතන්න" ලෙස එය භාවිතා කරයි. ඇත්ත වශයෙන්ම, LAMBDA සතුව තවත් බොහෝ ගැඹුරු පැත්තක් ඇති අතර එය එය සම්පුර්ණයෙන්ම පාහේ ක්‍රමලේඛන භාෂාවක් බවට පත් කරයි.

කාරණය නම් LAMBDA ශ්‍රිතවල මූලික වශයෙන් වැදගත් ලක්ෂණයක් වන්නේ ඒවා ක්‍රියාත්මක කිරීමේ හැකියාවයි පුනරාවර්තනය - ගණනය කිරීම්වල තර්කනය, ගණනය කිරීමේ ක්‍රියාවලියේදී ශ්‍රිතය තමන්ම කැඳවයි. පුරුද්දෙන්, එය රහසිගත බවක් පෙනෙන්නට තිබුණත්, ක්‍රමලේඛනයේදී, පුනරාවර්තනය සාමාන්‍ය දෙයකි. විෂුවල් බේසික් වල මැක්‍රෝස් වල උනත් ක්‍රියාත්මක කරන්න පුලුවන්, දැන් ඔයාලට පේන විදියට Excel වලට ඇවිත්. ප්රායෝගික උදාහරණයක් සමඟ මෙම තාක්ෂණය තේරුම් ගැනීමට උත්සාහ කරමු.

ලබා දී ඇති සියලුම අක්ෂර මූලාශ්‍ර පෙළෙන් ඉවත් කරන පරිශීලක-නිර්වචනය කළ කාර්යයක් සෑදීමට අපට අවශ්‍ය යැයි සිතමු. එවැනි ශ්‍රිතයක ප්‍රයෝජනය, මම හිතන්නේ, ඔබ ඔප්පු කිරීමට අවශ්‍ය නැත - එහි ආධාරයෙන් කුණු ආදාන දත්ත ඉවත් කිරීම ඉතා පහසු වනු ඇත, හරිද?

කෙසේ වෙතත්, පෙර, පුනරාවර්තන නොවන උදාහරණ හා සසඳන විට, දුෂ්කරතා දෙකක් අප බලා සිටී.

  1. අපි එහි කේතය ලිවීම ආරම්භ කිරීමට පෙර අපගේ කාර්යය සඳහා නමක් ඉදිරිපත් කිරීමට සිදුවනු ඇත, මන්ද එහි, මෙම නම දැනටමත් ශ්‍රිතය ඇමතීමට භාවිතා කරනු ඇත.
  2. එවැනි ප්‍රත්‍යාවර්තී ශ්‍රිතයක් කොටුවකට ඇතුළු කිරීම සහ LAMBDA ට පසුව (අපි කලින් කළ පරිදි) වරහන් තුළ තර්ක දැක්වීමෙන් එය නිදොස් කිරීම ක්‍රියා නොකරනු ඇත. ඔබට "මුල සිට" වහාම ශ්‍රිතයක් නිර්මාණය කිරීමට සිදුවනු ඇත නම කළමනාකරු (නම කළමනාකරු).

අපි අපගේ කාර්යය CLEAN ලෙස හඳුන්වමු, අපි එයට තර්ක දෙකක් තිබීමට කැමැත්තෙමු - පිරිසිදු කළ යුතු පෙළ සහ පෙළ තන්තුවක් ලෙස බැහැර කළ අක්ෂර ලැයිස්තුව:

LAMBDA යනු Excels New Super Function වේ

අපි කලින් කළා වගේ, ටැබ් එක මත නිර්මාණය කරමු සූත්රය в නම කළමනාකරු පරාසය නම් කරන්න, එය 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 rubles.

අනුකරණය 2

එවිට ශ්‍රිතය තමන්ම අමතන අතර පෙර පියවරේදී පිරිසිදු කිරීමෙන් පසු ඉතිරි වූ දේ ආදානය ලෙස (පළමු තර්කය) ලබා ගනී, දෙවන තර්කය යනු පළමු සිට නොව දෙවන අක්ෂරයෙන් ආරම්භ වන බැහැර කළ අක්ෂර මාලාවයි, එනම් “BVGDEEGZIKLMNOPRSTUFHTSCHSHSHCHYYYYA. , ආරම්භක "A" නොමැතිව - මෙය සිදු කරනු ලබන්නේ MID ශ්‍රිතය මගිනි. පෙර පරිදි, ශ්‍රිතය ඉතිරිව ඇති (B) හි වමේ සිට පළමු අක්ෂරය ගෙන එයට ලබා දී ඇති පෙළෙහි (Zkz n 125 රූබල්) හිස් නූලකින් ප්‍රතිස්ථාපනය කරයි - අපට අතරමැදි ප්‍රති result ලයක් ලෙස ලැබේ:

රු 125 යි.

අනුකරණය 3

පෙර පුනරාවර්තනයේදී (Bsh zkz n 125 ru.) ඉවත් කළ යුතු පෙළෙහි ඉතිරිව ඇති දේ පළමු තර්කය ලෙස ලබා ගනිමින් ශ්‍රිතය නැවතත් එය කැඳවයි. වම්, එනම් "VGDEEGZIKLMNOPRSTUFHTSCHSHSHCHYYYUYA.," ආරම්භක "B" නොමැතිව. ඉන්පසු එය නැවතත් මෙම කට්ටලයෙන් වමේ (B) සිට පළමු අක්ෂරය ගෙන එය පෙළෙන් ඉවත් කරයි - අපට ලැබෙන්නේ:

sh zkz n 125 ru.

සහ එසේ මත - මම ඔබට අදහස ලැබෙනු ඇතැයි මම බලාපොරොත්තු වෙමි. එක් එක් පුනරාවර්තනය සමඟ, ඉවත් කළ යුතු අක්ෂර ලැයිස්තුව වම් පසින් කපා හරිනු ලබන අතර, අපි කට්ටලයේ ඊළඟ අක්ෂරය හිස් තැන්වලින් සොයමින් ප්‍රතිස්ථාපනය කරන්නෙමු.

සියලුම අක්ෂර අවසන් වූ විට, අපට ලූපයෙන් පිටවීමට අවශ්‍ය වනු ඇත - මෙම භූමිකාව හුදෙක් ශ්‍රිතය මගින් සිදු කෙරේ IF (නම්), අපේ නිර්මාණය ඔතා ඇති. මැකීමට අක්ෂර ඉතිරිව නොමැති නම් (d=””), එවිට ශ්‍රිතය තව දුරටත් එයම ඇමතිය යුතු නැත, නමුත් නිෂ්කාශනය කිරීමට පෙළ (විචල්‍ය t) එහි අවසාන ස්වරූපයෙන් ආපසු ලබා දිය යුතුය.

සෛලවල පුනරාවර්තන පුනරාවර්තනය

ඒ හා සමානව, ඔබට දී ඇති පරාසයක සෛලවල පුනරාවර්තන ගණනය කිරීමක් ක්රියාත්මක කළ හැකිය. අපි හිතමු අපිට lambda function එකක් හදන්න ඕන කියලා ආදේශන ලැයිස්තුව ලබා දී ඇති යොමු ලැයිස්තුවකට අනුව මූලාශ්‍ර පෙළෙහි කොටස් තොග වශයෙන් ප්‍රතිස්ථාපනය කිරීම සඳහා. ප්රතිඵලය මේ ආකාරයෙන් විය යුතුය:

LAMBDA යනු Excels New Super Function වේ

එම. අපගේ කාර්යයේදී ආදේශන ලැයිස්තුව තර්ක තුනක් ඇත:

  1. සැකසීමට පෙළ සහිත කොටුව (මූලාශ්‍ර ලිපිනය)
  2. සෙවුමෙන් සෙවීමට අගයන් සහිත තීරුවක පළමු කොටුව
  3. සෙවීමෙන් ප්‍රතිස්ථාපන අගයන් සහිත තීරුවේ පළමු කොටුව

ශ්‍රිතය නාමාවලියෙහි ඉහළ සිට පහළට යා යුතු අතර වම් තීරුවෙන් සියලුම විකල්ප අනුක්‍රමිකව ප්‍රතිස්ථාපනය කළ යුතුය සොයා ගැනීමට දකුණු තීරුවෙන් අනුරූප විකල්ප වෙත ආදේශ කරන්න. ඔබට පහත පුනරාවර්තන ලැම්ඩා ශ්‍රිතය සමඟින් මෙය ක්‍රියාත්මක කළ හැක:

LAMBDA යනු Excels New Super Function වේ

මෙන්න, t විචල්‍යය ඊළඟ තීරු කොටුවෙන් මුල් පෙළ ගබඩා කරයි ලිපිනය, සහ n සහ z යන විචල්‍යයන් තීරු වල පළමු කොටු වෙත යොමු කරයි සොයා ගැනීමට и ආදේශ කරන්නපිළිවෙළින්.
පෙර උදාහරණයේදී මෙන්, මෙම ශ්‍රිතය මුලින්ම මුල් පිටපත ශ්‍රිතය සමඟ ප්‍රතිස්ථාපනය කරයි විෂය (ආදේශක) නාමාවලියේ පළමු පේළියේ දත්ත (උදා එස්පීබීon ශාන්ත පීටර්ස්බර්ග්), ඉන්පසු තමා-තමන් ලෙස හඳුන්වයි, නමුත් නාමාවලිය ඊළඟ පේළියට මාරු වීමත් සමඟ (එනම් ප්‍රතිස්ථාපනය කරයි ශාන්ත පීටර්ස්බර්ග් on ශාන්ත පීටර්ස්බර්ග්) ඉන්පසුව පහළට මාරුවක් සමඟ නැවත තමාටම අමතයි - සහ දැනටමත් ප්‍රතිස්ථාපනය කරයි පීටර් on ශාන්ත පීටර්ස්බර්ග් ආදිය

එක් එක් පුනරාවර්තනයකදී පහළට මාරුවීම සම්මත එක්සෙල් ශ්‍රිතයක් මඟින් ක්‍රියාත්මක වේ ඩිස්පෝසල් (OFFSET), මෙම නඩුවේ තර්ක තුනක් ඇත - මුල් පරාසය, පේළි මාරුව (1) සහ තීරු මාරුව (0).

හොඳයි, අපි ඩිරෙක්ටරියේ අවසානයට ළඟා වූ වහාම (n = ""), අපි පුනරාවර්තනය අවසන් කළ යුතුය - අපි අපවම ඇමතීම නතර කර මූලාශ්‍ර පෙළ විචල්‍යයේ t හි සියලුම ප්‍රතිස්ථාපනවලින් පසුව එකතු වී ඇති දේ ප්‍රදර්ශනය කරමු.

එච්චරයි. උපක්‍රමශීලී මැක්‍රෝ හෝ බල විමසුම් විමසුම් නැත - සම්පූර්ණ කාර්යය එක් කාර්යයකින් විසඳනු ලැබේ.

  • Excel හි නව ගතික අරා කාර්යයන් භාවිතා කරන්නේ කෙසේද: FILTER, SORT, UNIC
  • SUBSTITUTE ශ්‍රිතය සමඟ පෙළ ප්‍රතිස්ථාපනය කිරීම සහ පිරිසිදු කිරීම
  • VBA හි මැක්‍රෝස් සහ පරිශීලක-නිර්වචනය කළ කාර්යයන් (UDFs) නිර්මාණය කිරීම

ඔබමයි