LAMBDA yog Excel's New Super Function

Nyob rau lub sijhawm no, Microsoft Excel muaj yuav luag tsib puas daim ntawv ua haujlwm muaj nyob hauv lub Qhov rai Function Wizard - khawm fx nyob rau hauv lub formula bar. Qhov no yog qhov tsim nyog heev, tab sis, txawm li cas los xij, yuav luag txhua tus neeg siv sai lossis tom qab ntsib qhov xwm txheej uas daim ntawv teev npe no tsis muaj nuj nqi nws xav tau - tsuas yog vim nws tsis nyob hauv Excel.

Txog tam sim no, tib txoj hauv kev los daws qhov teeb meem no yog macros, piv txwv li sau koj tus kheej cov neeg siv kev ua haujlwm (UDF = User Defined Function) hauv Visual Basic, uas yuav tsum muaj kev tsim nyog tsim nyog thiab yog, qee zaum, tsis yooj yim kiag li. Txawm li cas los xij, nrog rau qhov tseeb Office 365 hloov tshiab, qhov xwm txheej tau hloov mus rau qhov zoo dua - qhov tshwj xeeb "wrapper" ua haujlwm tau ntxiv rau Excel LAMBDA. Nrog nws cov kev pab, txoj hauj lwm ntawm kev tsim koj tus kheej lub zog yog tam sim no daws tau yooj yim thiab zoo nkauj.

Cia peb saib lub hauv paus ntsiab lus ntawm nws txoj kev siv hauv qhov piv txwv hauv qab no.

Raws li koj feem ntau yuav paub, Excel muaj ob peb hnub parsing functions uas tso cai rau koj los txiav txim tus naj npawb ntawm hnub, hli, lub lim tiam, thiab xyoo rau ib hnub twg. Tab sis rau qee yam tsis muaj kev ua haujlwm uas txiav txim siab tus naj npawb ntawm peb lub hlis twg, uas feem ntau xav tau, txoj cai? Cia peb kho qhov shortcoming thiab tsim nrog LAMBDA tus kheej txoj haujlwm tshiab los daws qhov teeb meem no.

Kauj Ruam 1. Sau cov qauv

Cia peb pib nrog qhov tseeb tias manually hauv txoj kev niaj zaus peb yuav sau cov qauv hauv ib daim ntawv xov tooj uas suav qhov peb xav tau. Nyob rau hauv cov ntaub ntawv ntawm lub quarter tooj, qhov no yuav ua tau, piv txwv li, zoo li no:

LAMBDA yog Excels Tshiab Super Function

Kauj Ruam 2. qhwv hauv LAMBDA thiab kuaj

Tam sim no nws yog lub sijhawm los siv LAMBDA tshiab ua haujlwm thiab qhwv peb cov qauv hauv nws. Lub luag haujlwm syntax yog raws li nram no:

=LAMBDA(Hloov pauv 1; Hloov pauv 2; … VariableN ; Qhia)

qhov twg cov npe ntawm ib lossis ntau qhov sib txawv tau teev tseg ua ntej, thiab qhov kev sib cav zaum kawg yog ib qho qauv los yog cov lus suav uas siv lawv. Cov npe sib txawv yuav tsum tsis txhob zoo li cov chaw nyob ntawm tes thiab yuav tsum tsis txhob muaj cov dots.

Hauv peb qhov xwm txheej, tsuas muaj ib qho kev sib txawv - hnub uas peb suav tus lej peb lub hlis twg. Cia peb hu qhov sib txawv rau nws, hais, d. Tom qab ntawd qhwv peb cov qauv hauv kev ua haujlwm LAMBDA thiab hloov qhov chaw nyob ntawm tus thawj cell A2 nrog lub npe hloov pauv tsis tseeb, peb tau txais:

LAMBDA yog Excels Tshiab Super Function

Thov nco ntsoov tias tom qab qhov kev hloov pauv no, peb cov qauv (qhov tseeb, yog!) tau pib tsim qhov yuam kev, vim tias tam sim no thawj hnub ntawm cell A2 tsis hloov mus rau nws. Rau kev sim thiab kev ntseeg siab, koj tuaj yeem dhau qhov kev sib cav rau nws los ntawm kev ntxiv lawv tom qab ua haujlwm LAMBDA hauv kab lus:

LAMBDA yog Excels Tshiab Super Function

Kauj ruam 3. Tsim ib lub npe

Tam sim no rau qhov yooj yim thiab lom zem. Peb qhib Lub Npe Tus Thawj Tswj tab mis (Formulas - Tus Thawj Saib Xyuas Lub Npe) thiab tsim lub npe tshiab nrog lub pob tsim (Tsim). Tuaj nrog thiab sau lub npe rau peb txoj haujlwm yav tom ntej (piv txwv li, Nomkvartala), thiab nyob rau hauv lub teb txuas (Kev txheeb xyuas) ua tib zoo luam los ntawm cov qauv bar thiab muab tshuaj txhuam peb cov haujlwm LAMBDA, tsuas yog tsis muaj qhov kev sib cav zaum kawg (A2):

LAMBDA yog Excels Tshiab Super Function

Txhua yam. Tom qab nias rau OK cov haujlwm tsim tuaj yeem siv rau hauv ib lub xovtooj ntawm ib daim ntawv ntawm phau ntawv no:

LAMBDA yog Excels Tshiab Super Function

Siv rau hauv lwm phau ntawv

Vim tsim nrog LAMBDA Txij li cov neeg siv tau txhais cov haujlwm yog, qhov tseeb, muaj npe ntau yam, koj tuaj yeem yooj yim ua rau lawv tsis yog hauv phau ntawv ua haujlwm tam sim no. Nws yuav txaus kom luam cov xovtooj ntawm tes nrog cov haujlwm thiab muab tshuaj txhuam nws nyob qhov twg hauv daim ntawv ntawm lwm cov ntaub ntawv.

LAMBDA thiab dynamic arrays

Custom functions tsim nrog ib tug muaj nuj nqi LAMBDA ua tiav kev txhawb nqa ua haujlwm nrog cov tshiab dynamic arrays thiab lawv cov haujlwm (LIM, UNIK, QIB) ntxiv rau Microsoft Excel hauv 2020.

Cia peb hais tias peb xav tsim ib qho tshiab cov neeg siv-txhais ua haujlwm uas yuav sib piv ob lub npe thiab xa rov qab qhov sib txawv ntawm lawv - cov ntsiab lus los ntawm thawj daim ntawv teev npe uas tsis nyob hauv qhov thib ob. Lub neej txoj haujlwm, puas yog? Yav dhau los, rau qhov no lawv siv ob qho haujlwm ua haujlwm VPR (VLOOKUP), los yog PivotTables, lossis Cov Lus Nug Txog Lub Zog. Tam sim no koj tuaj yeem ua nrog ib qho qauv:

LAMBDA yog Excels Tshiab Super Function

Hauv Askiv version nws yuav yog:

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

Ntawm no muaj nuj nqi COUNTIF suav cov naj npawb ntawm qhov tshwm sim ntawm txhua lub caij ntawm thawj daim ntawv teev npe thib ob, thiab tom qab ntawd ua haujlwm LIM xaiv tsuas yog cov ntawm lawv uas tsis muaj qhov tshwm sim no. Los ntawm wrapping no qauv nyob rau hauv LAMBDA thiab tsim ib lub npe raws li nws nrog lub npe, piv txwv li, Tshawb nrhiav DISTRIBUTION - peb yuav tau txais kev ua haujlwm yooj yim uas rov qab los ntawm kev sib piv ob daim ntawv teev npe nyob rau hauv daim ntawv ntawm dynamic array:

LAMBDA yog Excels Tshiab Super Function

Yog tias cov ntaub ntawv hauv qhov tsis zoo li qub, tab sis "ntse" cov lus, peb txoj haujlwm tseem yuav daws yam tsis muaj teeb meem:

LAMBDA yog Excels Tshiab Super Function

Lwm qhov piv txwv yog dynamically splitting ntawv los ntawm hloov nws mus rau XML thiab ces parsing nws cell los ntawm cell siv lub FILTER.XML muaj nuj nqi peb nyuam qhuav parsed. Txhawm rau kom tsis txhob rov tsim cov qauv no ntawm tus kheej txhua lub sijhawm, nws yuav yooj yim dua los qhwv nws hauv LAMBDA thiab tsim kom muaj ntau yam dynamic raws li nws, piv txwv li ib qho tshiab compact thiab yooj yim muaj nuj nqi, naming nws, piv txwv li, RAZDTEXT:

LAMBDA yog Excels Tshiab Super Function

Thawj qhov kev sib cav ntawm qhov kev ua haujlwm no yuav yog lub xov tooj ntawm tes nrog cov ntawv nyeem, thiab qhov thib ob - cov cim cais, thiab nws yuav rov qab qhov tshwm sim hauv daim ntawv ntawm kab rov tav dynamic array. Lub function code yuav ua raws li nram no:

=LAMBDA(t;d; TRANSPOSE(FILTER.XML("“& hloov pauv (t;d? "«)&»";"//Y"))))

Cov npe ntawm cov piv txwv tsis muaj qhov kawg - nyob rau hauv txhua qhov xwm txheej uas koj feem ntau yuav tsum tau nkag mus rau tib lub sijhawm ntev thiab cumbersome, LAMBDA muaj nuj nqi yuav ua rau lub neej yooj yim dua.

Recursive enumeration ntawm cov cim

Tag nrho cov piv txwv yav dhau los tau pom tsuas yog ib qho, qhov pom tseeb tshaj plaws, sab ntawm LAMBDA muaj nuj nqi - nws siv los ua "wrapper" rau qhwv cov qauv ntev hauv nws thiab ua kom yooj yim rau lawv cov tswv yim. Qhov tseeb, LAMBDA muaj lwm qhov, qhov tob dua, sab uas hloov nws mus rau yuav luag tag nrho cov lus programming.

Qhov tseeb yog qhov tseem ceeb ntawm cov haujlwm ntawm LAMBDA yog lub peev xwm los siv lawv hauv kev rov qab kuaj dua - logic ntawm kev suav, thaum nyob rau hauv tus txheej txheem ntawm kev xam cov nuj nqi hu nws tus kheej. Los ntawm tus cwj pwm, nws yuav zoo li creepy, tab sis nyob rau hauv lub programming, recursion yog ib qho zoo tshaj plaws. Txawm tias hauv macros hauv Visual Basic, koj tuaj yeem siv nws, thiab tam sim no, raws li koj tuaj yeem pom, nws tau los rau Excel. Cia peb sim nkag siab txog cov txheej txheem no nrog rau cov piv txwv zoo.

Piv txwv tias peb xav tsim cov neeg siv kev ua haujlwm uas yuav tshem tawm tag nrho cov cim uas tau muab los ntawm cov ntawv nyeem. Qhov txiaj ntsig ntawm qhov kev ua haujlwm zoo li no, kuv xav tias, koj tsis tas yuav ua pov thawj - nws yuav yooj yim heev los tshem tawm cov ntaub ntawv nkag nrog nws cov kev pab, txoj cai?

Txawm li cas los xij, piv rau cov piv txwv yav dhau los, tsis yog rov ua dua, ob qho kev nyuaj tos peb.

  1. Peb yuav tsum tuaj nrog lub npe rau peb txoj haujlwm ua ntej peb pib sau nws cov lej, vim tias nyob rau hauv nws, lub npe no yuav raug siv los hu nws tus kheej.
  2. Nkag mus rau qhov kev ua haujlwm recursive rau hauv lub xov tooj ntawm tes thiab debugging nws los ntawm kev qhia cov lus sib cav tom qab LAMBDA (raws li peb tau ua dhau los) yuav tsis ua haujlwm. Koj yuav tau tsim ib qho haujlwm tam sim ntawd "los ntawm kos" hauv Lub Npe Tus Thawj Tswj (Npe Manager).

Cia peb hu rau peb txoj haujlwm, hais, CLEAN thiab peb xav kom nws muaj ob qhov kev sib cav - cov ntawv yuav tsum tau ntxuav thiab cov npe ntawm cov cim tsis suav nrog cov kab ntawv:

LAMBDA yog Excels Tshiab Super Function

Cia peb tsim, raws li peb tau ua dhau los, ntawm lub tab mis в Tus thawj tswj lub npe npe ntau yam, npe nws CLEAR thiab nkag mus rau hauv daim teb ntau raws li kev tsim kho:

=LAMBDA(t;d;IF(d=””;t;CLEAR(SUBSTITUTE(t;LEFT(d);””);MID(d;2;255))))

Ntawm no qhov sib txawv t yog cov ntawv qub yuav tsum tau muab tshem tawm, thiab d yog cov npe ntawm cov cim yuav tsum tau muab tshem tawm.

Txhua yam ua haujlwm zoo li no:

Khub 1

Lub fragment SUBSTITUTE(t;LEFT(d);""), raws li koj yuav twv, hloov thawj lub cim los ntawm sab laug cim los ntawm lub teeb d yuav tsum tau muab tshem tawm nyob rau hauv lub hauv paus ntawv nyeem t nrog ib tug khoob ntawv hlua, piv txwv li tshem tawm cov " A". Raws li qhov tshwm sim nruab nrab, peb tau txais:

Vsh zkz n 125 rubles.

Khub 2

Tom qab ntawd qhov kev ua haujlwm hu nws tus kheej thiab raws li cov tswv yim (qhov kev sib cav thawj zaug) tau txais dab tsi uas yog sab laug tom qab ntxuav hauv cov kauj ruam dhau los, thiab qhov kev sib cav thib ob yog cov hlua ntawm cov cim tsis suav nrog pib tsis yog thawj zaug, tab sis los ntawm tus cim thib ob, piv txwv li "BVGDEEGZIKLMNOPRSTUFHTSCHSHSHCHYYYYYA. , "tsis muaj qhov pib "A" - qhov no yog ua los ntawm MID muaj nuj nqi. Raws li ua ntej, txoj haujlwm yuav siv thawj tus cim los ntawm sab laug ntawm cov seem (B) thiab hloov nws hauv cov ntawv muab rau nws (Zkz n 125 rubles) nrog ib txoj hlua khoob - peb tau txais los ntawm qhov nruab nrab:

ua 125ru.

Khub 3

Lub luag haujlwm hu nws tus kheej dua, tau txais raws li thawj qhov kev sib cav dab tsi yog sab laug ntawm cov ntawv yuav raug tshem tawm ntawm qhov kev rov ua dua yav dhau los (Bsh zkz n 125 ru.), Thiab raws li qhov kev sib cav thib ob, cov txheej txheem tsis suav nrog truncated los ntawm ib tus cim ntxiv rau. sab laug, piv txwv li “VGDEEGZIKLMNOPRSTUFHTSCHSHSHCHYYYYUYA.,” tsis muaj qhov pib “B”. Tom qab ntawd nws rov siv thawj tus cim ntawm sab laug (B) los ntawm cov txheej txheem no thiab tshem tawm ntawm cov ntawv nyeem - peb tau txais:

sh zkz n 125 ru.

Thiab yog li ntawd - Kuv vam tias koj yuav tau txais lub tswv yim. Nrog rau txhua qhov iteration, cov npe ntawm cov cim yuav raug tshem tawm yuav raug txiav rau sab laug, thiab peb yuav tshawb nrhiav thiab hloov cov cim tom ntej los ntawm qhov teeb tsa nrog qhov tsis muaj.

Thaum tag nrho cov cim khiav tawm, peb yuav tsum tau tawm ntawm lub voj - lub luag haujlwm no tsuas yog ua los ntawm kev ua haujlwm IF (YOG), nyob rau hauv uas peb tsim yog qhwv. Yog tias tsis muaj cov cim tseg rau rho tawm (d = ""), tom qab ntawd cov haujlwm yuav tsum tsis hu nws tus kheej, tab sis yuav tsum tsuas yog rov qab cov ntawv kom tshem tawm (kuj hloov pauv t) hauv nws daim ntawv kawg.

Recursive iteration ntawm cov cell

Ib yam li ntawd, koj tuaj yeem siv qhov kev suav rov ua dua tshiab ntawm cov hlwb hauv ib thaj tsam. Piv txwv tias peb xav tsim ib qho haujlwm lambda npe REPLACEMENT LIST rau kev hloov pauv ntawm cov khoom tawg nyob rau hauv cov ntawv nyeem raws li ib daim ntawv teev npe siv. Cov txiaj ntsig yuav tsum zoo li no:

LAMBDA yog Excels Tshiab Super Function

Cov. ntawm peb txoj haujlwm REPLACEMENT LIST yuav muaj peb qhov kev sib cav:

  1. cell nrog cov ntawv nyeem rau txheej txheem (qhov chaw nyob)
  2. thawj lub xovtooj ntawm ib kab ntawv uas muaj nuj nqis los ntawm kev tshawb nrhiav
  3. thawj lub xovtooj ntawm kem nrog cov nqi hloov pauv los ntawm kev saib

Cov haujlwm yuav tsum mus los ntawm sab saum toj mus rau hauv qab hauv phau ntawv qhia thiab hloov txhua qhov kev xaiv los ntawm sab laug Yuav kom pom mus rau cov kev xaiv sib thooj los ntawm sab xis Hloov chaw. Koj tuaj yeem siv qhov no nrog cov nram qab no recursive lambda muaj nuj nqi:

LAMBDA yog Excels Tshiab Super Function

Ntawm no, qhov sib txawv t khaws cov ntawv qub los ntawm kab ntawv tom ntej chaw nyob, thiab cov variables n thiab z taw tes rau thawj lub hlwb hauv kab Yuav kom pom и Hloov chaw, feem.
Raws li hauv qhov piv txwv dhau los, qhov haujlwm no ua ntej hloov cov ntawv qub nrog cov haujlwm RAWS LI (SIB NTAUS) cov ntaub ntawv nyob rau hauv thawj kab ntawm cov directory (ie SPbon St. Petersburg), thiab tom qab ntawd hu nws tus kheej-nws tus kheej, tab sis nrog kev hloov pauv hauv phau ntawv teev npe mus rau kab tom ntej (piv txwv li hloov St. Petersburg on St. Petersburg). Tom qab ntawd hu nws tus kheej dua nrog kev hloov pauv - thiab hloov qhov uas twb muaj lawm Peter on St. Petersburg thiab lwm yam

Hloov mus ntawm txhua qhov iteration yog siv los ntawm tus qauv excel ua haujlwm TSEEM CEEB (OFFSET), uas nyob rau hauv cov ntaub ntawv no muaj peb arguments - thawj ntau yam, kab hloov (1) thiab kem hloov (0).

Zoo, sai li sai tau thaum peb mus txog qhov kawg ntawm daim ntawv teev npe (n = ""), peb yuav tsum xaus qhov kev rov ua dua - peb tsis txhob hu peb tus kheej thiab tso saib dab tsi tau sau tom qab tag nrho cov hloov pauv hauv cov ntawv nyeem hloov pauv t.

Yog tag nrho. Tsis muaj qhov yuam kev macros lossis Cov lus nug Lub Hwj Chim - tag nrho cov haujlwm yog daws los ntawm ib qho haujlwm.

  • Yuav ua li cas siv Excel tus tshiab dynamic array functions: FILTER, SORT, UNIC
  • Hloov thiab ntxuav cov ntawv nrog SUBSTITUTE muaj nuj nqi
  • Tsim macros thiab user-defined functions (UDFs) hauv VBA

Sau ntawv cia Ncua