LAMBDA Fonksiyona Super a Nû ya Excel e

Heya nuha, Microsoft Excel hema hema pênc sed fonksiyonên pelê xebatê heye ku bi bişkoka pencereya Function Wizard-ê peyda dibe fx di barê formula de. Ev komek pir maqûl e, lê di heman demê de, hema hema her bikarhêner zû an dereng rastî rewşek tê ku ev navnîş fonksiyona ku jê re hewce dike tune - tenê ji ber ku ew ne di Excel de ye.

Heya nuha, yekane awayê çareserkirina vê pirsgirêkê makro bûn, ango nivîsandina fonksiyona xweya diyarkirî ya bikarhêner (UDF = Fonksiyonek Diyarkirî ya Bikarhêner) di Visual Basic de, ku jêhatîbûna bernamekirinê ya guncan hewce dike û carinan, qet ne hêsan e. Lêbelê, digel nûvekirinên Office 365-ê yên herî dawî, rewş ber bi çêtirbûnê ve guherî - fonksiyonek taybetî ya "wrapper" li Excel hate zêdekirin. LAMBDA. Bi alîkariya wê, peywira afirandina fonksiyonên xwe naha bi hêsanî û xweş tê çareser kirin.

Ka em di mînaka jêrîn de li prensîba karanîna wê binêrin.

Wekî ku hûn bi îhtîmalek mezin dizanin, Excel gelek fonksiyonên parskirina tarîxê heye ku dihêle hûn ji bo rojek diyar hejmara roj, meh, hefte û salê diyar bikin. Lê ji ber hin sedeman fonksiyonek tune ku hejmara çaryek diyar dike, ku ew jî pir caran hewce ye, rast? Werin em vê kêmasiyê çareser bikin û biafirînin LAMBDA fonksiyona xwe ya nû ji bo çareserkirina vê pirsgirêkê.

Gav 1. Formula binivîse

Ka em bi vê rastiyê dest pê bikin ku bi destan bi awayê gelemperî em ê di hucreyek pelê de formulek binivîsin ku tiştê ku ji me re hewce dike hesab dike. Di mijara hejmara çaryek de, ev dikare were kirin, mînakî, bi vî rengî:

LAMBDA Fonksiyona Super a Nû ya Excels e

Gav 2. Di LAMBDA de û ceribandin

Naha ew dem e ku em fonksiyona nû ya LAMBDA bicîh bînin û formula xwe tê de bipêçin. Hevoksaziya fonksiyonê wiha ye:

=LAMBDA(Guherbar1; Guherbar2; … VariableN ; Îfade)

cihê ku navên yek an çend guherbaran pêşî lê têne rêz kirin, û argumana paşîn her gav formulek an vegotinek hesabkirî ye ku wan bikar tîne. Divê navên guhêrbar ne wek navnîşanên hucreyê nebin û xalan nehewînin.

Di rewşa me de, dê tenê yek guhêrbar hebe - tarîxa ku em jimara çaryekê hesab dikin. Ka em jê re guhêrbar bi nav bikin, bibêjin d. Dûv re formula me di fonksiyonek de pêça LAMBDA û navnîşana şaneya orîjînal A2 bi navek guhêrbar a xeyalî biguhezînin, em distînin:

LAMBDA Fonksiyona Super a Nû ya Excels e

Ji kerema xwe not bikin ku piştî veguheztinek wusa, formula me (bi rastî, rast!) dest bi çêkirina xeletiyek kir, ji ber ku naha dîroka orîjînal ji hucreya A2 jê re nayê veguheztin. Ji bo ceribandin û pêbaweriyê, hûn dikarin argûmanan jê re derbas bikin û wan piştî fonksiyonê zêde bikin LAMBDA di nav parantezê de:

LAMBDA Fonksiyona Super a Nû ya Excels e

Gav 3. Navekî biafirîne

Niha ji bo beşa hêsan û kêfxweş e. Em vedikin Gerînendeyê Navê tab formîl (Formulên - Rêvebirê Navê) û bi bişkokê navekî nû biafirînin Xûliqandin (Xûliqandin). Werin û navek ji bo fonksiyona meya pêşerojê binivîsin (mînak, Nomkvartala), û li zeviyê Pêvek (Nûçik) bi baldarî ji baroka formula kopî bikin û fonksiyona me bişopînin LAMBDA, tenê bêyî argumana paşîn (A2):

LAMBDA Fonksiyona Super a Nû ya Excels e

Hemû. Piştî tikandina li ser OK fonksiyona hatî afirandin dikare di her şaneyek li ser her pelek vê pirtûka xebatê de were bikar anîn:

LAMBDA Fonksiyona Super a Nû ya Excels e

Di pirtûkên din de bikar bînin

Ji ber ku bi afirandin LAMBDA Ji ber ku fonksiyonên diyarkirî yên bikarhêner, bi rastî, rêzikên binavkirî ne, hûn dikarin wan bi hêsanî ne tenê di pirtûka xebatê ya heyî de peyda bikin. Dê bes be ku hûn hucreyê bi fonksiyonê kopî bikin û wê li cîhek pelê pelek din bixin.

LAMBDA û rêzikên dînamîk

Fonksiyonên xwerû bi fonksiyonek têne afirandin LAMBDA bi serfirazî xebata bi arrayên dînamîkî yên nû û fonksiyonên wan re piştgirî dike (PARZÛN, UNIK, pola) di sala 2020-an de li Microsoft Excel hate zêdekirin.

Ka em bibêjin ku em dixwazin fonksiyonek nû ya ku ji hêla bikarhêner ve hatî destnîşankirin biafirînin ku dê du navnîşan bide ber hev û cûdahiya di navbera wan de vegerîne - ew hêmanên ji navnîşa yekem ên ku di ya duyemîn de ne. Karê jiyanê, ne wisa? Berê, ji bo vê yekê wan her du fonksiyonên a la bikar anîn VPR (VLOOKUP), an PivotTables, an pirsên Hêza Query. Niha hûn dikarin bi yek formula re bikin:

LAMBDA Fonksiyona Super a Nû ya Excels e

Di guhertoya Îngilîzî de ew ê bibe:

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

Li vir fonksiyonê COUNTIF hejmara rûdanên her hêmanên lîsteya yekem di ya duyemîn de, û paşê fonksiyonê dihejmêre PARZÛN ji wan tenê yên ku ev bûyer nebûn hildibijêre. Bi pêçandina vê avahiyê di nav de LAMBDA û li ser bingeha wê bi navekî ve rêzek binavkirî biafirîne, mînakî, BELAVKIRINA LÊRÎNÊ - em ê fonksiyonek hêsan bistînin ku encama berhevdana du navnîşan di forma rêzek dînamîkî de vedigerîne:

LAMBDA Fonksiyona Super a Nû ya Excels e

Ger daneyên çavkaniyê ne asayî, lê tabloyên "aqilmend" bin, dê fonksiyona me jî bê pirsgirêk biqede:

LAMBDA Fonksiyona Super a Nû ya Excels e

Nimûneyek din dabeşkirina dînamîkî ya nivîsê ye bi veguheztina wê bo XML û dûv re parkirina wê şaneyek bi şaneyê bi karanîna fonksiyona FILTER.XML ya ku me vê dawiyê pars kir. Ji bo ku her carê vê formula tevlihev bi destan neyê hilberandin, ew ê hêsantir be ku wê di LAMBDA de bipêçin û li ser bingeha wê rêzek dînamîkî biafirînin, ango fonksiyonek nû ya kompakt û hêsan, navê wê bikin, mînakî RAZDTEXT:

LAMBDA Fonksiyona Super a Nû ya Excels e

Argumana yekem a vê fonksiyonê dê hucreya bi nivîsa çavkaniyê be, û ya duyemîn - karaktera veqetandî, û ew ê encamê di forma rêzek dînamîkî ya horizontî de vegerîne. Koda fonksiyonê dê wiha be:

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

Navnîşa mînakan bêdawî ye - di her rewşek de ku hûn bi gelemperî hewce ne ku têkevin heman formula dirêj û giran, fonksiyona LAMBDA dê jiyanê bi rengek berbiçav hêsantir bike.

Jimartina vegerî ya tîpan

Hemî mînakên berê tenê aliyekî fonksiyona LAMBDA-yê, ya herî eşkere, nîşan dane - karanîna wê wekî "pêçek" ji bo pêçandina formulên dirêj di nav wê de û hêsankirina têketina wan. Di rastiyê de, LAMBDA aliyekî din, pir kûrtir, heye ku wê dizivirîne hema hema zimanek bernamenûsek bêkêmasî.

Rastî ev e ku taybetmendiyek bingehîn a girîng a fonksiyonên LAMBDA şiyana pêkanîna wan e paşvedanê - mantiqa hesaban, dema ku di pêvajoya hesabkirinê de fonksiyona xwe bang dike. Ji adetê, dibe ku ew çuçik xuya bike, lê di bernamekirinê de, vegerandin tiştek hevpar e. Tewra di makroyên Visual Basic de, hûn dikarin wê bicîh bikin, û naha, wekî ku hûn dibînin, ew hatiye Excel. Werin em hewl bidin ku vê teknîkê bi mînakek pratîkî fam bikin.

Bifikirin ku em dixwazin fonksiyonek diyarkirî ya bikarhêner biafirînin ku dê hemî karakterên hatî dayîn ji nivîsa çavkaniyê derxîne. Kêrhatiya fonksiyonek wusa, ez difikirim, hûn ne hewce ne ku îsbat bikin - ew ê pir rehet be ku hûn daneyên têketinê yên çolê bi alîkariya wê paqij bikin, ne rast?

Lêbelê, li gorî mînakên berê yên neveger, du zehmetî li benda me ne.

  1. Berî ku em dest bi nivîsandina koda wê bikin, pêdivî ye ku em ji bo fonksiyona xwe navek peyda bikin, ji ber ku di wê de, ev nav dê berê were bikar anîn da ku fonksiyonê bixwe bang bike.
  2. Bi danasîna argûmanên di nav kevanan de piştî LAMBDA (wek ku me berê kiribû) ketina fonksiyonek weha vegerî di hucreyekê de û xeletkirina wê nexebite. Pêdivî ye ku hûn tavilê "ji sifirê" fonksiyonek biafirînin Gerînendeyê Navê (Navê Rêvebir).

Werin em fonksiyona xwe bi nav bikin, bibêjin, PAQÎK û em dixwazin ku ew du arguman hebin - nivîsa ku were paqij kirin û navnîşa tîpên jêderkirî wekî rêzika nivîsê:

LAMBDA Fonksiyona Super a Nû ya Excels e

Werin em, wekî me berê kir, li ser tabê biafirînin formîl в Name manager range bi navê, navê wê CLEAR û têkevin qadê Dirêjahî avakirina jêrîn:

=LAMBDA(t;d;IF(d=””;t;PÊŞKET(t;ÇEP(d);””);MID(d;2;255))))

Li vir guhêrbar t nivîsa orîjînal e ku divê were paqij kirin, û d navnîşa tîpan e ku werin jêbirin.

Hemî bi vî rengî dixebite:

Dubarekirin 1

Parçeya SUBSTITUTE(t;LEFT(d);""), wek ku hûn texmîn dikin, tîpa yekem a ji tîpa çepê ya ji koma d-yê ku di nivîsa çavkaniyê t de were jêbirin bi rêza nivîsê ya vala vediguhêze, ango tîpa "" radike. YEK". Wekî encamek navîn, em dibin:

Vsh zkz n 125 ruble.

Dubarekirin 2

Dûv re fonksiyon gazî xwe dike û wekî têketinê (argumana yekem) tiştê ku piştî paqijkirina di gava berê de maye, distîne, û argumana duyemîn rêzika karakterên jêvekirî ye ku ne ji yekem, lê ji karaktera duyemîn dest pê dike, ango "BVGDEEGZIKLMNOPRSTUFHTSCHSHSHCHYYYYYYA. , "bêyî "A" ya destpêkê - ev ji hêla fonksiyona MID ve tê kirin. Mîna berê, fonksiyon tîpa yekem ji çepê yên mayî (B) digire û di nivîsa ku jê re hatî dayîn (Zkz n 125 ruble) bi rêzek vala diguhezîne - em wekî encamek navîn werdigirin:

125 ru.

Dubarekirin 3

Fonksiyon dîsa gazî xwe dike, wekî argumana yekem tiştê ku ji nivîsê maye ku di dubarekirina berê de were paqij kirin (Bsh zkz n 125 ru.) werdigire, û wekî argumana duyemîn, komek tîpên jêderkirî ji hêla yek karakterek din ve têne qut kirin. çep, ango "VGDEEGZIKLMNOPRSTUFHTSCHSHSHCHYYYYUYA.," bêyî "B"ya destpêkê. Dûv re ew dîsa tîpa yekem ji çepê (B) ji vê setê digire û ji nivîsê derdixe - em distînin:

sh zkz n 125 ru.

Û bi vî awayî - ez hêvî dikim ku hûn ramanê bigirin. Bi her dubarekirinê re, navnîşa karakterên ku bêne rakirin dê li milê çepê were qut kirin, û em ê karaktera din a ji berhevokê bi valahiyek bigerin û biguhezînin.

Dema ku hemî karakter biqedin, em ê hewce bikin ku ji lûkê derkevin - ev rol tenê ji hêla fonksiyonê ve tête kirin IF (GER), ku sêwirana me tê de pêça ye. Ger tîpên jêbirinê nemînin (d=””), wê hingê divê fonksiyon êdî gazî xwe neke, lê divê bi tenê nivîsa ku were paqij kirin (guhêrbar t) di forma xweya dawî de vegerîne.

Dubarekirina vegerî ya şaneyan

Bi heman rengî, hûn dikarin di nav rêzek diyarkirî de hejmartinek vegerî ya hucreyan pêk bînin. Bifikirin ku em dixwazin fonksiyonek lambda bi navê xwe çêbikin LÎSTEYA ŞÛGIRIN ji bo guheztina bi tevahî perçeyên di nivîsa çavkaniyê de li gorî navnîşek referansê ya diyarkirî. Divê encam wiha xuya bike:

LAMBDA Fonksiyona Super a Nû ya Excels e

Ewan. li fonksiyona me LÎSTEYA ŞÛGIRIN dê sê arguman hebin:

  1. hucreya bi nivîsa ku ji bo pêvajoyê (navnîşana çavkaniyê)
  2. hucreya yekem a stûnek bi nirxên ku ji lêgerînê digerin
  3. hucreya yekem a stûnê bi nirxên veguheztinê yên ji lêgerînê

Pêdivî ye ku fonksiyon di pelrêçê de ji serî ber bi jêr ve biçe û bi rêzdarî hemî vebijarkên ji stûna çepê biguhezîne Ji bo dîtina ji vebijarkên têkildar ji stûna rastê Diberdasitin. Hûn dikarin vê bi fonksiyona lambda ya paşverû ya jêrîn bicîh bikin:

LAMBDA Fonksiyona Super a Nû ya Excels e

Li vir, guhêrbar t nivîsa orîjînal ji şaneya stûna din hildide Navnîşan, û guherbarên n û z di stûnan de şaneyên yekem nîşan didin Ji bo dîtina и Diberdasitin, rêzdarî.
Wekî mînaka berê, ev fonksiyon pêşî li şûna nivîsa orîjînal bi fonksiyonê digire DIBERDASITIN (DIBERDASITIN) daneyên li ser rêza yekem a pelrêça (ango SPbon St. Petersburg), û dûv re gazî-xwe dike, lê bi guheztina pelrêçê ber bi rêza din ve (ango diguhezîne St. Petersburg on St. Petersburg). Dûv re dîsa bi guheztinek jêrîn gazî xwe dike - û ya berê diguhezîne Petrûs on St. Petersburg hwd.

Veguheztina xwarê di her dubarekirinê de ji hêla fonksiyonek standard excel ve tê bicîh kirin PIRSANDIN (OFFSET), ku di vê rewşê de sê arguman hene - rêza orîjînal, guheztina rêzê (1) û veguheztina stûnê (0).

Welê, gava ku em gihîştin dawiya pelrêça (n = ""), divê em vegerê biqedînin - em dev ji gazîkirina xwe berdin û tiştê ku piştî hemî veguheztinên di guherbara nivîsa çavkaniyê t de berhev kiriye nîşan bidin.

Navê pêger. Makroyên xapînok an pirsên Power Query tune - tevahî peywir bi yek fonksiyonê ve tê çareser kirin.

  • Meriv çawa fonksiyonên array dînamîkî yên nû yên Excel bikar tîne: FILTER, SORT, UNIC
  • Li şûna û paqijkirina nivîsê bi fonksiyona SUBSTITUTE
  • Afirandina makro û fonksiyonên diyarkirî yên bikarhêner (UDF) di VBA de

Leave a Reply