Vairāk

Vai atjaunināt visas kolonnas šūnas, lai tās atbilstu pirmās rindas vērtībai?

Vai atjaunināt visas kolonnas šūnas, lai tās atbilstu pirmās rindas vērtībai?


Man ir punktu slānis; atribūtu tabulā ir x un y koordinātas ar punktiem saistītajiem sākotnējiem centraidiem (punkti tika ģenerēti no apļa pazīmju perimetriem un joprojām satur centroid datus).

Tā kā katrā slānī ir punkti no diviem dažādiem daudzstūriem, katra slāņa atsevišķajam punktam ir atšķirīgas centrālās vērtības. Man jāatjaunina atribūtu tabula, lai katrai rindai būtu vienāda vērtība; ērti katram slānim vēlamā vērtība ir no pirmās rindas (t.i., FID = 1).

Es strādāju ModelBuilder, tāpēc ideālā gadījumā tas būtu modelim draudzīgs risinājums.

Vai ir kāds vienkāršs labojums, par kuru es izslēdzu?

Varbūt kaut kas lauka kalkulatorā?


Modelī tā ir tikai vērtības aprēķināšanas un lauka aprēķināšanas kombinācija.

Izmantojiet mazliet Python koda/kursoru sadaļā Aprēķināt vērtību, lai izvilktu pirmo vērtību no datu avota. Ja jūsu modeļa datu elementi atšķiras, pielāgojiet to izmantošanu'%Funkciju klase%'un'%Lauka nosaukums%'pēc vajadzības.

Un tad pievienojiet to laukam Aprēķināt lauku. Izmantojot lauku Aprēķināt, ar peles labo pogu noklikšķiniet uz rīka un iestatiet parametru Lauka nosaukums par mainīgo.

Piezīme. Es rādu tikai vienu lauku


Rindu definīcijās skaitļi vai etiķetes Rindas kods šūna identificē katru rindu rindas definīcijā. Jūs varat norādīt rindas kodu, lai atsauktos uz datiem aprēķinos un kopsummās.

Rindas koda prasības

Rindas kods ir nepieciešams visām rindām. Rindas definīcijā varat sajaukt ciparu, burtciparu un neiestatītus (tukšus) rindu kodus. Rindas kods var būt jebkurš pozitīvs vesels skaitlis (zem 100 000 000) vai aprakstoša etiķete, kas identificē šo rindu. Aprakstošajai etiķetei jāatbilst šādiem noteikumiem:

Etiķetei jāsākas ar alfabēta rakstzīmi (no a līdz z vai no A līdz Z), un tā var būt jebkura ciparu un burtu kombinācija līdz 16 rakstzīmēm.

Etiķetē var būt pasvītrojuma rakstzīme (_), bet citas speciālās rakstzīmes nav atļautas.

Etiķetē nevar izmantot nevienu no šiem rezervētajiem vārdiem: AND, OR, IF, THEN, ELSE, PERIODS, TO, BASEROW, UNIT, NULL, CPO vai RPO.

Šie piemēri ir derīgi rindu kodi:

Mainiet rindas kodu rindas definīcijā

  1. Pārskatu noformētājā noklikšķiniet uz Rindu definīcijasun pēc tam atveriet maināmās rindas definīciju.
  2. Atbilstošajā rindā ievadiet jauno vērtību šūnas šūnā Rindas kods kolonna.

Atiestatīt ciparu rindu kodus

  1. Pārskatu noformētājā noklikšķiniet uz Rindu definīcijasun pēc tam atveriet maināmās rindas definīciju.
  2. Uz Rediģēt izvēlnē, noklikšķiniet uz Pārdēvēt rindas.
  3. Iekš Pārdēvēt rindas dialoglodziņā norādiet jaunas vērtības sākuma rindas kodam un rindas koda pieaugumam. Ciparu rindu kodus varat atiestatīt uz vienādām atstarpēm. Tomēr pārskatu noformētājs pārnumurē tikai rindu kodus, kas sākas ar cipariem (piemēram, 130 vai 246). Tas nepārnumurē rindu kodus, kas sākas ar burtiem (piemēram, INCOME_93 vai TP0693).

Pārnumurējot rindu kodus, pārskatu noformētājs tiek automātiski atjaunināts TOT un CAL atsauces. Piemēram, ja a TOT rinda attiecas uz diapazonu, kas sākas ar rindas kodu 100, un jūs pārnumurējat rindas, sākot ar 90, sākot TOT atsauces izmaiņas no 100 uz 90.


Kā minēts iepriekš, ja izvēles ceturtais arguments, range_lookup, tiek izlaists vai ir TRUE, VLOOKUP uzmeklēšanas tabulas pirmajā slejā meklēs "slēgtu" atbilstību. Konkrēti, VLOOKUP meklēs lielāko vērtību, kas ir mazāka vai vienāda ar meklējamo vērtību, un pēc tam atgriež vērtību attiecīgās rindas 9. slejā.

Tas darbosies un ļaus lietotājam izveidot uzmeklēšanas tabulu, lai iekļautu vienu atgriežamo vērtību virknei meklēto vērtību. Tomēr, kā atzīmēts Ātrā VLOOKUP sintakses grunts sadaļā, uzmeklēšanas tabulas pirmajā slejā esošie dati ir jāsakārto augošā secībā, lai tas darbotos.

Apsveriet tālāk sniegtos piemērus.


Pirmajā blokā uzmeklēšanas tabulā esošie vienumi nav pareizi sakārtoti: kods 7, violets, ir norādīts nepareizā secībā, un līdz ar to formulas G6 un G10 atgriež nepareizu rezultātu. Otrajā blokā visas formulas atgriež pareizos rezultātus, jo šajā uzmeklēšanas tabulā ir uzskaitīti vienumi pareizā secībā.

Lai izvairītos no šīs kļūdas, ja izmantojat VLOOKUP, lai atrastu "slēgtu" atbilstību, vienmēr pārliecinieties, vai uzmeklēšanas tabula ir kārtota pareizi.

Piezīme: Šajos piemēros, ja diapazona_skatīšanai mēs izmantotu FALSE, tad uzmeklēšanas tabulas kārtošanas secībai nebūtu nozīmes, un visas formulas būtu atgriezušas pareizos rezultātus. Tas ir, iestatot VLOOKUP, lai meklētu precīzu atbilstību, uzmeklēšanas tabula nav jāšķiro: tā var būt jebkurā secībā, un VLOOKUP atgriezīs pareizo rezultātu, pieņemot, ka pastāv precīza atbilstība (vai #N/A kļūda, ja nav atbilstības).


Klasificējiet tekstu ar atslēgvārdiem

Lai kategorizētu tekstu, izmantojot atslēgvārdus ar atbilstību "satur", varat izmantot funkciju MEKLĒT, izmantojot INDEX un MATCH. Parādītajā piemērā C5 formula ir šāda:

kur atslēgvārdus ir nosauktais diapazons E5: E14 un kategorijām ir nosauktais diapazons F5: F14.

Piezīme: šī ir masīva formula, un tā jāievada, izmantojot taustiņu kombināciju + taustiņš + taustiņš + ievadīšana.

Funkcijas MATCH ietvaros mēs izmantojam funkciju MEKLĒT, lai meklētu šūnas B slejā katram nosauktajam diapazonam. atslēgvārdus (E5: E14):

Tā kā mēs meklējam vairākus vienumus (nosauktajā diapazonā) atslēgvārdus), mēs saņemsim vairākus šādus rezultātus:

Vērtība! kļūda rodas, ja SEARCH nevar atrast tekstu. Kad SEARCH atrod atbilstību, tas atgriež skaitli, kas atbilst teksta pozīcijai šūnā.

Lai šos rezultātus pārveidotu lietojamākā formātā, mēs izmantojam funkciju ISNUMBER, kas visas vērtības pārvērš par TRUE/FALSE šādi:

Šis masīvs iekļaujas MATCH funkcijā kā lookup_array, Ar lookup_value iestatīts kā TRUE. MATCH atgriež pirmās TRUE pozīciju, ko tā atrod masīvā (šajā gadījumā - 7), kas tiek sniegta funkcijai INDEX kā rindas_numurs:

INDEX atgriež 7. vienumu kategorijām, "Auto", kā gala rezultāts.

Ar XLOOKUP

Izmantojot funkciju XLOOKUP, šo formulu var nedaudz vienkāršot. XLOOKUP var izmantot to pašu loģiku, kas izmantota iepriekš MATCH funkcijā, tāpēc līdzvērtīga formula ir:

XLOOKUP atrod masīvā pirmo TRUE un atgriež atbilstošo vērtību no kategorijām.

Nepatiesu atbilstību novēršana

Viena no šīs pieejas problēmām ir tāda, ka jūs varat iegūt nepatiesas atbilstības no apakšvirknēm, kas parādās garākos vārdos. Piemēram, ja jūs mēģināt saskaņot vārdu “dr”, iespējams, atradīsit arī vārdus “Andrea”, “dzēriens”, “sauss” utt., Jo šajos vārdos parādās “dr”. Tas notiek tāpēc, ka SEARCH automātiski nosaka atbilstību "satur".

Lai ātri uzlauztu, varat pievienot atstarpi ap meklēšanas vārdiem (piemēram, “dr” vai “dr”), lai izvairītos no “dr” uztveršanas citā vārdā. Bet tas neizdosies, ja šūnā "dr" parādās pirmais vai pēdējais, vai ar pieturzīmēm utt.

Ja jums ir nepieciešams precīzāks risinājums, viena no iespējām ir vispirms normalizēt tekstu palīga kolonnā, rūpējoties, lai tiktu pievienots arī pirmais un pēdējais atstarpe. Tad jūs varat meklēt veselus vārdus, ko ieskauj atstarpes.


MATCH (G14, 1. tabula [PĀRDOŠANAS REP.], 0))

Tātad, apvienojot šīs formulas, mēs varam izvēlēties divus kritērijus (pārdošanas pārstāvja un metrikas nosaukums), lai atgrieztu attiecīgo vērtību.

Kā indeksēt atbilstības 2 kritērijus ar datu validāciju programmā Excel


Salīdziniet un apvienojiet koplietotās darbgrāmatas kopijas

Kad runa ir par viena un tā paša Excel faila dažādu versiju apvienošanu, Salīdziniet un apvienojiet funkcija noder. Tas ir īpaši noderīgi, ja vairāki lietotāji sadarbojas vienā Excel darbgrāmatā, jo tas ļauj vienlaikus skatīt visu lietotāju izmaiņas un komentārus. Lai izmantotu šo funkciju, noteikti veiciet šādus sagatavošanās darbus:

    Kopīgojiet savu Excel darbgrāmatu, pirms to darāt pieejamu citiem lietotājiem.

Tagad, kad visi sākotnējie sagatavošanās darbi ir veikti pareizi, jūs esat gatavs apvienot koplietotās darbgrāmatas kopijas.

1. Iespējojiet darbgrāmatu salīdzināšanas un apvienošanas funkciju programmā Excel

Lai gan darbgrāmatu salīdzināšanas un apvienošanas funkcija ir pieejama visās Excel 2016, Excel 2013, Excel 2010 un vecākās versijās, šī komanda pēc noklusējuma nekur programmā Excel netiek rādīta. Lai to pievienotu ātrās piekļuves rīkjoslai, veiciet tālāk norādītās darbības.

  • Atveriet nolaižamo izvēlni Ātrā piekļuve un izvēlieties Vairāk komandu.
  • Iekš Excel opcijas dialoglodziņā, izvēlieties Visas komandas zem Izvēlieties komandas no.
  • Komandu sarakstā ritiniet uz leju līdz Salīdziniet un apvienojiet darbgrāmatas, atlasiet to un noklikšķiniet uz Pievienot pogu, lai to pārvietotu uz labās puses sadaļu.
  • Noklikšķiniet uz Labi.

2. Salīdziniet un apvienojiet darbgrāmatas

Kad visi lietotāji ir pabeiguši darbu ar jūsu koplietoto Excel darbgrāmatu, varat apvienot visas kopijas vienā failā.

  • Atveriet koplietotās darbgrāmatas primāro versiju.
  • Noklikšķiniet uz Salīdziniet un apvienojiet darbgrāmatas komandu ātrās piekļuves rīkjoslā.
  • Parādītajā dialoglodziņā atlasiet kopīgojamās darbgrāmatas kopiju, kuru vēlaties apvienot. Lai atlasītu vairākas kopijas, turiet nospiestu taustiņu Shift, vienlaikus noklikšķinot uz failu nosaukumiem, un pēc tam noklikšķiniet uz Labi.

Gatavs! Izmaiņas no katra eksemplāra tiek apvienotas vienā darbgrāmatā.

3. Pārskatiet izmaiņas

Lai ātri redzētu visus dažādu lietotāju veiktos labojumus, rīkojieties šādi:

  • Pārslēdzieties uz Pārskats tab & gt Izmaiņas grupu un noklikšķiniet uz Izsekot izmaiņas & gt Iezīmējiet izmaiņas.
  • Iekš Iezīmējiet izmaiņas dialoglodziņā, izvēlieties Visi iekš Kad kaste, Visi iekš PVO lodziņā, notīriet Kur lodziņā, izvēlieties Izcelt izmaiņas ekrānā lodziņā un noklikšķiniet uz Labi.

Lai norādītu rindas un kolonnas ar atšķirībām, Excel izceļ kolonnu burtus un rindu numurus tumši sarkanā krāsā. Šūnu līmenī dažādu lietotāju veiktie labojumi ir atzīmēti ar dažādām krāsām. Lai redzētu, kurš veica konkrētas izmaiņas, vienkārši virziet kursoru virs šūnas.


Izveidojiet projektu

Lai izveidotu projektu, veiciet šīs procedūras darbības.

Veidņu atlasītājā izvēlieties veidni kreisajā pusē un priekšskatiet to labajā pusē. Šajā piemērā izvēlieties Attēlu marķēšana sarakstā un pēc tam izvēlieties Izveidot projektu.

Uz Rediģēt projektu lapā, izvēlieties Rediģēt rekvizītus cilni un pēc tam ievadiet sava HIT informāciju.

Iekš Aprakstiet savu HIT darbiniekiem sadaļa Rediģēt rekvizītus cilni, rīkojieties šādi:

Lauks Apraksts
Projekta nosaukums Projekta nosaukuma lauks jau ir izveidots, bet jūs to varat mainīt. Pārliecinieties, ka projekta nosaukums ir aprakstošs, lai jūs varētu viegli identificēt projektu, kad vēlaties publicēt projekta partiju. Projekta nosaukums ir jūsu atsaucei un netiek parādīts darbiniekiem.
Nosaukums Ievadiet uzdevuma nosaukumu. Esi konkrēts. Piemēram, tagu fotoattēlu vietā ievadiet tagu orientieru attēlus. Nosaukums tiek parādīts darbiniekiem.
Apraksts Aprakstiet uzdevumu. Meklēšanas mehānisms meklē, izmantojot šo aprakstu, tāpēc izmantojiet vārdus, kas, jūsuprāt, palīdzēs darbiniekiem atrast jūsu HIT.
Atslēgvārdi Ievadiet ar komatu atdalītu vārdu sarakstu, ko darbinieki var izmantot, lai atrastu jūsu HIT.

Iekš Uzdevuma iestatīšana sadaļa Rediģēt rekvizītus cilni, rīkojieties šādi:

Norādiet to unikālo darbinieku skaitu, kurus vēlaties strādāt pie katra uzdevuma. Viens uzdevums vienam uzdevumam nozīmē, ka ar uzdevumu strādā tikai viens darbinieks. Jūs varētu vēlēties, lai vairāki darbinieki strādātu pie uzdevuma, lai noskaidrotu, vai starp darbiniekiem ir vienošanās, kas var palielināt jūsu uzticību rezultātiem.

Darbinieks var pieņemt uzdevumu tikai vienu reizi un katram uzdevumam var iesniegt tikai vienu uzdevumu. Tas garantē, ka vairākiem darbiniekiem ir jāpabeidz uzdevums ar vairākiem uzdevumiem.

Norādiet, cik ilgi darbinieki var pieņemt uzdevumus paketē. Pēc šī laika beigām darbinieki nevar pieņemt partijas uzdevumus. Darbinieki var pabeigt darbu pie iepriekš pieņemtajiem uzdevumiem, lai gan partija vairs nav pieejama citiem, lai strādātu.

Iekš Strādnieka prasības sadaļa Rediģēt rekvizītus cilni, rīkojieties šādi:

Iespēja Apraksts
Pieprasiet, lai darbinieki būtu meistari, lai veiktu jūsu uzdevumus Atlasiet, lai norādītu, ka jūsu uzdevumu veikšanai nepieciešami mehāniskās turku meistari. Meistari ir elitāra strādnieku grupa, kas ir demonstrējusi izcilu sniegumu, veicot tūkstošiem uzdevumu Mehāniskās Turk tirgū. Meistariem jāsaglabā šis augstais sniegums, pretējā gadījumā viņi var zaudēt šo atšķirību.
Norādiet papildu kvalifikāciju, kas darbiniekiem jāatbilst, lai veiktu jūsu uzdevumus Pievienojiet līdz piecām prasībām, piemēram, darba ņēmēja HIT apstiprinājuma līmeni, ģeogrāfisko atrašanās vietu vai minimālo apstiprināto HIT skaitu. Turklāt jūs varat iestatīt Premium kvalifikācija piemēram, valodas prasme vai demogrāfiskie kritēriji, kas palielinās katra pabeigtā uzdevuma izmaksas. Ja esat izveidojis pielāgotas kvalifikācijas, tās ir pieejamas nolaižamās izvēlnes apakšdaļā.
Projekts satur pieaugušajiem paredzētu saturu Atzīmējiet izvēles rūtiņu, lai norādītu, ka projektā var būt potenciāli nepārprotams vai aizvainojošs saturs.

Izvēlies Dizaina izkārtojums cilni un rediģējiet veidnes HTML. HTML redaktorā varat nokopēt citā failā. Lai priekšskatītu lapas HTML, atveriet failu pārlūkprogrammā. Lai nodrošinātu, ka jūsu veidlapas elementi labi darbojas ar Amazon Mechanical Turk, iesakām izmantot mūsu pielāgotos HTML elementus.

Izveidojiet mainīgo, ievietojot dolāra zīmi pirms cirtainām iekavām ap kolonnas nosaukumu jūsu HIT datu failā. Tas var būt teksts jūsu veidnes pamattekstā, avota URL attēlā vai video tagā un dažādas citas lietas. Mainīgā vērtība tiek iegūta no jūsu kolonnas HIT datu fails ar tādu pašu vērtību galvenes rindā. Lai iegūtu informāciju, kas jāmaina no uzdevuma uz uzdevumu, izmantojiet mainīgie. Veidnes paraugā attēla tagā ir mainīgais attēla avotam: $ .

Izveidojiet savu HIT datu failu. HIT datu fails ir ar komatu atdalīts vērtību (.csv) fails, kas satur datu vērtības, ko izmanto, lai aizstātu mainīgos. Daudzas izklājlapu lietojumprogrammas, tostarp Microsoft Excel, var saglabāt failus mapē. csv faila formāts.

Katra jauna rindiņa failā apzīmē jaunu HIT. Datu vērtību skaitam vienā rindā precīzi jāatbilst projektā izmantoto mainīgo skaitam. Pirmā rinda. csv HIT datu failā ir sleju virsraksti datu vērtību kolonnām. Kārtībai, kādā izmantojat mainīgos projekta veidnē, nav jāatbilst kolonnu secībai. csv fails.

Veidņu mainīgo nosaukumiem jāatbilst HIT datu faila vērtību sleju virsrakstiem. Piemēram, ja izmantojat mainīgo $ , HIT datu failā jābūt kolonnai ar image_url pozīciju.

Jūsu HIT datu failā nedrīkst būt rindu pārtraukumi starp datu šūnām, un tas netiek atbalstīts kā rindas pārtraukuma rakstzīme. MacOS datori ievieto šo rakstzīmi, pārvēršot Microsoft Excel tabulu a. csv fails.

Ja jūsu HIT satur attēlus vai videoklipus, jums ir jāiekļauj saites uz tiem HIT datu failā. Attēliem un videoklipiem jābūt publiski pieejamiem. Lietotāja saskarne nenodrošina rīku attēlu vai videoklipu augšupielādei. Apsveriet iespēju izmantot kādu no publiski pieejamiem rīkiem, lai augšupielādētu attēlus Amazon S3.

Mechanical Turk atgriež rezultātus tabulā, kas tiek saglabāta .csv failā. Ievades un atbilžu lauku skaits vienā HIT nosaka kolonnu skaitu Rezultāti tabula. Viena rinda Rezultāti tabula attēlo pilnu atbilžu komplektu vienam HIT, kā parādīts nākamajā piemērā.

Izvēlieties Saglabāt periodiski, lai saglabātu sava projekta HTML, lai nezaudētu darbu.

Mechanical Turk dzēš projektu, ja neizmantojat projektu 120 dienas pēc kārtas. Ja vēlaties piekļūt savam projektam ilgāku laiku, iesakām nokopēt HTML un saglabāt to savā sistēmā.

Izvēlies Priekšskatīt un pabeigt cilni, pārskatiet veidnes priekšskatījumu un pēc tam rīkojieties šādi:

Ja esat apmierināts ar izmaiņām, izvēlieties Pabeigt.

Ja jums ir jāveic izmaiņas, izvēlieties Dizaina izkārtojums cilni un labojiet HTML.

Mainīgie šajā brīdī netiek aizpildīti.

Pēc tam, kad esat izvēlējies Pabeigt, Izveidot tiek parādīta lapa, un jūsu projekts tiek parādīts esošo projektu sarakstā.

Pēc tam publicējiet sēriju ar šo veidni, lai tā būtu pieejama darbiniekiem. Informāciju par sērijas publicēšanu skatiet sadaļā HIT sērijas publicēšana.

Paldies, ka paziņojāt mums, ka darām labu darbu!

Ja jums ir brīdis, lūdzu, pastāstiet mums, ko mēs darījām pareizi, lai mēs varētu darīt vairāk.

Paldies, ka paziņojāt mums, ka šī lapa ir jāstrādā. Mēs atvainojamies, ka esam tevi pievīluši.

Ja jums ir laiks, lūdzu, pastāstiet mums, kā mēs varam uzlabot dokumentāciju.


Kā VLOOKUP () darbojas programmā Excel

Funkcija Excel VLOOKUP () atgriež atbilstošu vērtību pēc uzmeklēšanas vērtības atbilstības, izmantojot šādu sintaksi:

VLOOKUP (lookup_value, lookup_range, offset, is_sorted)

A tabula izskaidro šos argumentus.

Skaidrojums

Obligāti/pēc izvēles

lookup_value

Šī ir vērtība, kuru mēģināt saskaņot.

lookup_range

Tas identificē datu diapazonu.

Šī skaitliskā vērtība identificē atbilstošo kolonnu pa labi no lookup_value.

Šī ir Būla vērtība: TRUE vai FALSE. TRUE ir noklusējums un norāda, ka lookup_value dati ir sakārtoti. Izmantojiet FALSE, lai norādītu, ka lookup_value nav sakārtots.

Īsumā, VLOOKUP () izmanto uzmeklēšanas vērtību, lai atgrieztu vērtību citā kolonnā. Tagad izmantosim to, lai atrastu vistuvāko atbilstošo vērtību.


Programmatūras pievienojumprogrammas

Simtools.xlam ir Microsoft Excel pievienojumprogramma. Simtools izklājlapās pievieno statistiskās funkcijas un procedūras Montekarlo simulācijas un riska analīzes veikšanai. Tajā ir arī vienkāršs revīzijas rīks (iepriekš saukts par Formlist), kas pievieno procedūras jebkura atlasītā diapazona formulu parādīšanai. Simtools tika izstrādāts, lai atvieglotu varbūtību un statistikas pielietošanu un palīdzētu vadītājiem veikt sarežģītu lēmumu analīzi. Šīs programmas tiek izplatītas kā bezmaksas programmatūra individuālai lietošanai, un tās var brīvi pārdalīt akadēmiskās iestādes studentiem un mācībspēkiem. Visas pārējās tiesības ir aizsargātas.

Jūs varat uzzināt vairāk par Simtools izmantošanu no grāmatas Probability Models for Economic Decisions, ko izdevusi MIT Press (2019) [pieejama vietnē Amazon.com].

SIMTOOLS instalēšana

Lai instalētu Simtools, lejupielādējiet Simtools.xlam failu no šīs vietnes un saglabājiet šo failu izvēlētajā direktorijā cietajā diskā. (Jūs varētu izvēlēties to saglabāt visur, kur datorā tiek glabāti Excel pievienojumprogrammas, taču tas nav nepieciešams.) Saglabājot pārliecinieties, vai faila nosaukumam ir pareizs nosaukums xlam paplašinājumu, kas apzīmē Excel pievienojumprogrammu.

Pēc tam, lai programmā Excel instalētu Simtools, izmantojiet failu: Opcijas: Papildinājumi: Pārvaldiet ExcelAddIns: Go komandu secība Windows datorā vai komandu secība Tools: Add-ins Mac datorā un atlasiet opciju "Simtools" dialoglodziņā "Pieejamās pievienojumprogrammas" vai pārlūkojiet, lai atrastu Simtools.xlam, kur to saglabājāt. Pēc instalēšanas programmā Excel lentē SimTools vajadzētu parādīties kā cilnei. Ja tas neparādās, iespējams, jums būs jāpievieno mape, kurā ievietojāt simtools.xlam kā uzticamu Excel atrašanās vietu, izmantojot failu: Opcijas: TrustCenter: TrustCenterSettings: TrustedLocations: AddNewLocation.

Programmai Excel 2007 un jaunākām versijām: noklikšķiniet šeit, lai iegūtu SIMTOOLS.XLAM, kurā kopš 2017. gada marta ir iekļauts Formlist.

Piezīme: Ja jūsu pārlūkprogramma pārvērš xlam failus zip failos vai jums ir citas lejupielādes problēmas, noklikšķiniet šeit, lai lejupielādētu zip failu, kas satur Simtools.xlam ar pdf failiem, kas dokumentē tā funkcijas.

(Lai iegūtu Excel formātu tikai programmai Excel 2007 un jaunākām versijām: FORMLIST.XLAM.)

(Vecākām Excel versijām pirms 2007. gada varat noklikšķināt šeit, lai lejupielādētu veco simtools.xla un veco formlist.xla. Ir pieejamas arī vecākas simtools.xla un formlist.xla versijas vecākai Excel 5 versijai MS Office .)

XLA failu lejupielādes problēmu risināšana: Ja jūsu pārlūkprogramma palaiž programmu Excel, nevis saglabā failus diskā, ar peles labo pogu noklikšķiniet uz iepriekš minētajām saitēm un uznirstošajā izvēlnē atlasiet opciju Saglabāt kā. Ja jūsu pārlūkprogramma maina .xlam faila nosaukuma paplašinājums uz .xlsx, jums vajadzētu būt iespējai izmantot šos failus pēc to pārdēvēšanas, lai atjaunotu pareizos .xlam faila nosaukums.
Ja jums ir problēmas ar pievienojumprogrammu funkcijām xls darbgrāmatā, kas tika izveidota citā datorā, izmantojiet Excel rediģēšanas saišu procedūru.

SIMTOOLS 3.4 iezīmes:

SIMTOOLS.XLAM pievieno Excel šādas 32 statistikas funkcijas, kas uzskaitītas sešās kategorijās. Papildu parametri ir parādīti slīpraksts.

Apgrieztās kumulatīvās varbūtības funkcijas. Šīs funkcijas kopā ar Excel NORMINV vai NORM.INV funkciju var izmantot nejaušo mainīgo ģenerēšanai, ja pirmo parametru (sauktu par "varbūtību" vai "randprob") ģenerē funkcija RAND () vai CORAND:

  • BETINV (varbūtība, vidējais, stdevn, apakšējā, augšējā) atgriež apgrieztās kumulatīvās vērtības beta izlases lielumam, ko parametrē pēc tā vidējās un standarta novirzes. Ja pirmais parametrs ir RAND, BETINV iegūst ierobežotu nejaušu mainīgo. (Noklusējuma apakšējā un augšējā robeža ir 0 un 1.)
  • BINOMINV (varbūtība, n, p) atgriež apgrieztas kumulatīvas vērtības binomālajam nejaušam lielumam. Ja pirmais parametrs ir RAND, BINOMINV iegūst ierobežotu veselu skaitli nejaušu mainīgo no 0 līdz n, ar vidējo n*p.
  • DISCRINV (randprob, vērtības, varbūtības) atgriež apgrieztās kumulatīvās vērtības diskrētam nejaušam mainīgajam. Ja pirmais parametrs ir RAND, DISCRINV atgriež diskrētu nejaušu mainīgo ar iespējamām vērtībām un atbilstošām varbūtībām dotajos diapazonos.
  • EXPOINV (varbūtība, vidējais) atgriež apgrieztās kumulatīvās vērtības eksponenciālajam nejaušam mainīgajam. Ja pirmais parametrs ir RAND, EXPOINV iegūst negatīvu nejaušu mainīgo (bieži izmanto nejaušiem gaidīšanas laikiem).
  • GAMINV (varbūtība, vidējais, stdevn) atgriež apgrieztas kumulatīvas vērtības gamma nejaušam lielumam, ko parametrē pēc tā vidējās un standarta novirzes. Ja pirmais parametrs ir RAND, GAMINV iegūst nejaušu nejaušu mainīgo.
  • GENLINV (varbūtība, quart1, quart2, quart3, zemākais, augstākais) atgriež apgrieztas kumulatīvas vērtības vispārinātam-loģiski normālam nejaušam lielumam, kura varbūtība ir par 25% zemāka par kvart1 vērtību (pirmās kvartilītes augšdaļa), 50% varbūtība zem ceturkšņa2 un 75% varbūtība zem kvart3. Ģeneralizēts-lognormāls nejaušs mainīgais ir konstants plus vai mīnus loģiski neparasts nejaušais mainīgais. Ja pirmais parametrs ir RAND (), GENLINV iegūst nejaušu mainīgo, kas varētu būt pozitīvs vai negatīvs, bet ir ierobežots šaurākās kvartili diapazona pusē. Ja ir norādītas neobligātās zemākās un augstākās vērtības (kas atbilst zemākajai & lt quart1 & lt quart2 & lt quart3 & lt augstākajai vērtībai), tad vispārinātā-lognormālā nejaušā lieluma vērtības tiek koriģētas pēc nepieciešamības, lai GENLINV nepārsniegtu šīs robežas (palielinot līdz zemākajai vērtībai zem tā, samazinoties līdz augstākajai vērtībai no augšas).
  • LAPLAINV (varbūtība, vidējais, stdevn) atgriež apgrieztās kumulatīvās vērtības Laplasa (vai dubult eksponenciālajam) nejaušam lielumam, ko parametrē pēc tā vidējās un standarta novirzes. Ja pirmais parametrs ir RAND, LAPLAINV iegūst Laplasa nejaušo mainīgo, kura astēs ir lielāka varbūtība nekā normālam ar vienādiem parametriem.
  • LNORMINV (varbūtība, vidējais, stdevn) atgriež apgrieztas kumulatīvas vērtības lognormālam nejaušam lielumam, ko parametrē pēc tā vidējās un standarta novirzes. Ja pirmais parametrs ir RAND, LNORMINV iegūst nejaušu nejaušu mainīgo.
  • POISINV (varbūtība, vidējais) atgriež apgrieztās kumulatīvās vērtības Puasona nejaušajam mainīgajam. Ja pirmais parametrs ir RAND, POISINV iegūst nejaušu veselu skaitļa nejaušo mainīgo.
  • TRIANINV (varbūtība, apakšējā robeža, visdrīzāk, augšējā robeža) atgriež apgrieztās kumulatīvās vērtības nejaušam mainīgajam ar trīsstūrveida varbūtības blīvumu. Ja pirmais parametrs ir RAND, TRIANINV iegūst ierobežotu nejaušu mainīgo.
  • XTREMINV (varbūtība, vidējais, stdevn) atgriež apgrieztās kumulatīvās vērtības ārkārtas vērtības (vai Gumbel) nejaušības lielumam, ko parametrē pēc tā vidējās un standarta novirzes. Ja pirmais parametrs ir RAND, XTREMINV iegūst nejaušu mainīgo, kas var būt pozitīvs vai negatīvs. (Ja W ir Veibula nejaušais mainīgais, tad -LN (W) ir šis galējās vērtības sadalījums.)

Funkcijas darbam ar korelācijām starp nejaušajiem mainīgajiem:

  • KORANDA (CorrelArray, RandSource), kas ievadīts kā masīva formula šūnu diapazonā pēc kārtas, atgriež RANDom vērtības nejaušu mainīgo izveidei, kuriem ir korelācija, kā norādīts attiecīgajā CorrelArray. (Skatīt arī NORMIZE.) Katra vērtība CORAND atgrieztajā masīvā ir kā RAND, jo tā tiek ģenerēta vienmērīgi no 0 līdz 1, bet vērtības CORAND masīvā nav neatkarīgas. Jebkuram veselam skaitlim n, kas lielāks par 1, CorrelArray parametrs var būt kvadrātveida n-x korelācijas masīvs n nejaušajiem mainīgajiem (kā to atgriež MCORRELS), un pēc tam CORAND atgriež masīvu ar attiecīgi atbilstošām vērtībām. Šādam n-by-n korelācijas masīvam jābūt simetriskam un jābūt diagonālei. Parametrs CorrelArray var būt arī viens skaitlis, un tādā gadījumā CORAND darbojas tā, it kā CorrelArray parametrs būtu 2 līdz 2 masīvs, atgriežot divas nejaušas vērtības ar norādīto korelāciju. Ja CorrelArray ir skaitlis un izvēles RandSource parametrs ir atsauce uz citu šūnu, kurā ir RAND vai CORAND formula, funkcija CORAND vienā šūnā atgriež vienotu nejaušu vērtību, kas korelē ar RandSource šūnu saskaņā ar CorrelArray numuru. (Lai uzzinātu vairāk par CORAND, skatiet zemāk esošās piezīmes.)
  • MCORRELS (dataRange) atgriež korelācijas koeficientu matricu starp datu diapazona kolonnām. Ja datu diapazonā ir n kolonnas, tad MCORRELS jāievada kā masīva formula kvadrātveida n-by-n diapazonā.
  • MIDRAND (korelācija, ņemot vērāCoValue) atgriež CORAND nosacīto mediānu, ņemot vērā citas CORAND vērtības, un korelāciju starp tām. Izmanto korelāciju subjektīvam novērtējumam.
  • MSQRT (squarearray) atgriež dota kvadrātveida masīva zemākas trīsstūra matricas kvadrātsakni (vai Cholesky koeficientu). Masīva funkcija.
  • NORMIZE (datu kolonna) atgriež normalizētu ranga vērtību masīvu, kas ņemts no standarta normālā sadalījuma (pie deformējamiem mediāniem) un sakārtots kā datu sleja. Ja CORAND izmanto nepārtrauktu nejaušu mainīgo izveidei, kas nav normāli, CORAND korelācijas parametriem jābūt normalizētām ranga korelācijām, kuras var aprēķināt pēc datiem, katrai datu sērijai piemērojot NORMIZE un pēc tam aprēķinot korelācijas starp šiem normalizētajiem masīviem.
    (Piezīme. NORMIZE var atgriezt kļūdas ziņojumu, ja tas ir ievadīts diapazonā, kas nav vienāds ar datu sleju. Taču aprēķina kļūda programmā Excel 97 var izraisīt šo kļūdas ziņojumu arī tad, ja tiek pārrēķināts NORMIZE masīvs. Šajā gadījumā , izklājlapa jāpārrēķina, izmantojot taustiņu kombināciju Ctrl+Alt+F9, kas liek programmai Excel pārrēķināt visas šūnas.)
  • PRODS (vērtības) reizina katru vērtību pāri noteiktā diapazonā un atgriež produktus kā kvadrātveida masīvu. Vērtības jānorāda vienā rindā vai vienā kolonnā. Lai ilustrētu šīs funkcijas izmantošanu, pieņemsim, ka diapazons ar nosaukumu "čaumalas"satur kvadrātveida simetrisku masīvu, kurā uzskaitītas dažādu akciju nejaušās peļņas par akciju korelācijas, diapazons ar nosaukumu"stdevns"uzskaitītas šo akciju ienesīguma standarta novirzes un diapazons ar nosaukumu"akcijas"uzskaitīts šo akciju akciju skaits kādā ieguldījumu portfelī, tad portfeļa kopējās peļņas standarta novirze ir
    SUMPRODUCT (PRODS (akcijas), PRODS (stdevns), korpusi)^0.5

Lēmumu analīzes funkcijas:

  • ARGMAX (etiķetes, vērtības, testCells, kritērijs) atgriež etiķeti, kas atbilst maksimālajai vērtībai, kur atbilstošās testa šūnas (ja tādas ir) atbilst kritērijam.
  • CE (ienākumi, RiskTolConst, RiskTolSlope) atgriež noteiktības ekvivalentu nejaušai izlozei no ienākumu diapazona lēmumu pieņēmējam ar pastāvīgu riska toleranci (vai lineāru riska toleranci, ja tiek izmantots papildu RiskTolSlope parametrs). Ja riska tolerance ir pozitīvs skaitlis, CE vērtība ir starp minimālo un vidējo ienākumu vērtību, un, palielinoties riska tolerancei, CE kļūst tuvāka vidējam. Ja riska tolerance ir negatīva konstante (kas apzīmē risku meklējošu uzvedību), tad CE vērtība ir starp vidējo un maksimālo ienākumu vērtību. Ja parametrs RiskTolConst ir precīzi vienāds ar 0 un RiskTolSlope tiek izlaists, tad funkcija CE atgriež ienākumu vērtību vidējo. (CE tiek aprēķināts, UTIL pārvēršot ienākumus lietderības vērtībās, vidēji aprēķinot šīs lietderības vērtības un UINV pārvēršot šo vidējo lietderību atpakaļ naudas vienībās. Ieņēmumu diapazona skaitliskie ieraksti netiek ņemti vērā. CE atkarība no riska tolerances ir nepārtraukta ja riska pielaide ir nulle, jo nedaudz zemāka riska pielaide dod CE tuvu maksimālajiem ienākumiem, bet nedaudz augstāka riska tolerance - CE tuvu minimālajiem ienākumiem. Ja tiek izmantots RiskTolSlope parametrs, nulles vai negatīva riska pielaide rada kļūda.)
  • RISKTOL (HighIncome, LowIncome, CertainEquiv) atgriež pastāvīgu riska toleranci, lai loterijai, kas maksā lielus vai zemus ienākumus, katrai ar varbūtību 1/2, būtu noteiktā noteiktības ekvivalenta vērtība.
  • UTIL (ienākumi, RiskTolConst, RiskTolSlope) atgriež monetāro ienākumu lietderīgo vērtību lēmumu pieņēmējam ar pastāvīgu vai lineāru riska toleranci.
  • UINV (utilīta, RiskTolConst, RiskTolSlope) atgriež monetārās noteiktības ekvivalentu sagaidāmajai lietderībai no funkcijas UTIL ar tādiem pašiem riska tolerances parametriem.

Funkcijas diskrētu varbūtību sadalījumu analīzei:

  • CEPR (vērtības, varbūtības, RiskTolConst, testCells, kritērijs) atgriež noteiktības ekvivalentu lēmumu pieņēmējam ar pastāvīgu riska toleranci nejaušiem ienākumiem, kas iegūti no norādītajām vērtībām saskaņā ar atbilstošajām varbūtībām, atkarībā no notikuma, ja attiecīgās testa šūnas (ja tādas ir) atbilst kritērijam. Ja parametrs RiskTolConst ir 0, funkcija CEPR atgriež nosacīto paredzamo vērtību.
  • CORRELPR (vērtības1, vērtības2, varbūtības) atgriež korelācijas koeficientu diskrētam varbūtības sadalījumam ar atbilstošām divu nejaušu mainīgo vērtībām.
  • COVARPR (vērtības1, vērtības2, varbūtības) atgriež kovarianci diskrētam varbūtības sadalījumam ar atbilstošām divu nejaušo mainīgo vērtībām.
  • STDEVPR (vērtības, varbūtības) atgriež standarta novirzi diskrētam varbūtības sadalījumam ar atbilstošām nejauša mainīgā vērtībām.

Regresijas analīzes funkcijas:

  • REGRESSN (XDataRange, YDataRange) aktīvi atgriež vairākas regresijas izvadi, lai prognozētu Y kā nejaušu mainīgo, kas ir lineāri atkarīgs no skaidrojošajiem X mainīgajiem. REGRESSN jāievada kā masīva formula diapazonā ar 7 rindām un tikpat daudz kolonnu kā X datu diapazons.
  • YHATSTE (XDataRange, NewXRow, RegressnStdErr) atgriež standarta kļūdas aprēķināto nosacīto vidējo Y (bieži sauc par Y-cepuri) dotajā jaunajā X rindā daudzkārtējā regresijā.

Funkcijas nejaušai diskrētu sadalījumu ģenerēšanai:

  • DIRICH (alfa masīvs, RandSource), kas ievadīta kā masīva formula diapazonā, kura izmērs ir tāds pats kā alfa masīvam, atgriež Dirihleta izlases daļas, kuru summa ir 1. Šīm izlases daļām ir līdzekļi, kas ir proporcionāli atbilstošajām vērtībām alfa masīvā. Augstākas alfa masīva vērtības rada mazāku dispersiju. (RANDom ievadi nejaušu DIRICH vērtību vadīšanai var nodrošināt ārēji papildu RandSource diapazonā, kas ir tāda paša izmēra kā alfa masīvs. Pretējā gadījumā DIRICH automātiski iegūst nejaušas ievades, netieši zvanot uz Excel-VBA nejaušo skaitļu ģeneratoru.)
  • DIRALPHA (dataRange), kas ievadīts kā masīva formula šūnu rindā vienā rindā, atgriež aprēķinātos alfa parametrus Dirihleta sadalījumam. Katrā datu diapazona rindā ir jābūt negatīviem skaitļiem, kuru summa ir 1.
  • LGT (x) ir loģistiskais sadalījums. It transforms random variables from a logit model to fractions between 0 and 1 or (as an array formula) to discrete probability distributions proportional to the EXP(x(i)) values. In the array-formula usage, x must be an array of numbers in a row, and LGT must be entered into a similar array.
  • LGTINV(p) is the inverse of the logistic or logit function. Applied to a fraction or (as an array formula) to a discrete probability distribution, LGTINV returns log-odds ratios for a logit model. In the array-formula usage, p must be an array of probability values in a row, and LGTINV must be entered into a similar array.
  • SHUFFLE(n, RandSource), entered as an array formula in a range of n cells in one row, returns a random ordering of the numbers from 1 to n. When entered into a row range of fewer than n cells, this function generates random samples from <1. n>without replacement. The values in a given range of n cells in a row can be shuffled by entering the array formula =INDEX(givenrange,1,SHUFFLE(n)) into another n cells in a row. (An optional RandSource cell containing a RAND value can be used to determine the outcome of SHUFFLE. When RandSource is omitted, SHUFFLE uses instead an implicit call to Excel-VBA's random number generator.)

SIMTOOLS.XLAM also adds three macro procedures to the Excel Tools menu:

  • SIMULATION TABLE, in a selected range, tabulates outputs from repeated recalculations of a Monte Carlo simulation model. The outputs to be tabulated should be in the top row of the selected range, but the top-left cell of this selected range should be unused. Recalculated values of the simulation outputs will fill the lower rows of the selected range, with each row containing the output values from an independent recalculation of the simulation model. The left column of the selected range is used for a percentile index, which can be useful for making cumulative-distribution charts after the output data is sorted (but the Simulation Table procedure itself does not sort the output data).
  • ITERATIVE PROCESS iteratively copies values to a state range from an update range, while tabulating output.
  • COMBINE ROWS makes all combinations of rows from selected ranges. It can be used to make a table of possible event-sequences that is equivalent to a decision tree.

Using Simtools functions in VBA macros: If you want to use Simtools functions in a VBA macro program, it is necessary to attach Simtools.xla as a reference in your VBA module, by applying the Tools:References menu command in the Visual Basic Editor and checking Simtools.xla as an available reference.

More technical notes about CORAND: With an n-by-n CorrelArray parameter, CORAND's optional RandSource parameter can be a reference either to a single cell or to n cells in a row. RandSource cells should contain independent uniform random values, as generated by RAND or CORAND. When RandSource is a single cell, this cell's value is returned in CORAND's output array as the last value on the right. When RandSource is a range of n cells in a row, CORAND looks in these cells for all the random inputs that it needs to generate its n correlated outputs, preserving the rightmost value but transforming the others to generate appropriately correlated random outputs. This usage (along with a similar RandSource usage for the DIRICH and SHUFFLE function) can be applied when you want to work with another simulation add-in's random number generator. When RandSource is omitted, CORAND automatically generates its n random values by transforming the results of n implicit calls to Excel-VBA's random number generator. The seed for this VBA random-number generator is randomly reset (with a reference to the computer's clock) whenever the SimulationTable or IterativeProcess macro procedure is run (from version 3.31).

What's new in version 3: In version 3.0 (3/99), the NORMIZE, PRODS, and XTREMINV functions have been added, an optional RiskTolSlope parameter has been added for the CE function, and the former CONDEXP function has been dropped (subsumed now by CEPR). The menu item formerly that was formerly called MarkovProcess has been renamed IterativeProcess, and the former SensitivityTable menu item has been dropped (subsumed now by Torndiag.xls). In version 3.1 (4/99), the percentile numbering in the left column of a Simulation Table has been changed to run from 0 to 1 with step 1/(k-1) (instead of from 0 to (k-1)/k with step 1/k), for compatibility with Excel's PERCENTILE function. LGT and LGTINV have been modified to avoid Excel97 recalculation bugs (v3.11). DISCRINV has been revised to improve speed (v3.13). To handle nonsymmetric correlation arrays generated by Excel's data-analysis tools, CORAND has been changed to use only the lower-left half of the correlArray (v3.14). In version 3.2 (12/99), the MIDRAND function has been added, and values of the NORMIZE function have been changed to fractile medians in the standard normal distribution (having mean 0 and standard deviation 1, instead of matching the mean and standard deviation of the data column). The SHUFFLE function has been added in version 3.3 (3/2000). LAPLAINV is new in version 3.4 (2/2018).

Notes on earlier versions: Changes in versions 2.x include the CE function (v2.2), the DIRICH function (v2.3), the DISCRINV function (v2.4), the optional RandSource parameter for CORAND (single cell usage in v2.5, range usage in v2.95), the optional RiskTolSlope parameter for UTIL and UINV (v2.6), the RISKTOL function (v2.7), the DIRALPHA function and the optional RandSource parameter of DIRICH (v2.8), the MCORRELS function and the array-function usage of LGT and LGTINV (v2.9), the optional Lowest and Highest parameters for GENLINV (v2.96), the CEPR function (v2.98). Other second-decimal version updates have been modifications to improve speed and numerical accuracy. Some function names were changed in version 2 of Simtools. The version-1 functions BINV, GINV, TRNGLINV, and EXPLINV have been renamed BETINV, GAMINV, TRIANINV, and EXPOINV. The version-1 function EXPLUTIL function was replaced by the UTIL function, with inverse UINV. See also simtools.doc.

Features of the FORMLIST module in Simtools.xlam:

FORMLIST adds one macro procedure to the Excel tools menu:

  • FORMULA LIST is a procedure for auditing the formulas that are used in a selected range. Under this procedure, the formulas from all cells in the audit range can be listed as text in any selected column. If a cell is part of an array formula then the range of this array is listed with the formula (new in v1.5). The list can also include the names that are defined in the workbook (new in v1.4).
    If the selected output range is the same as the audit range, then FORMULA LIST instead does a formula/text toggle, inserting a single quote ['] before the initial equals sign [=] in each formula, to display formulas in place as text. A second application of this formula/text toggle removes these quotes, to restore the formulas. Array formulas are not affected by a formula/text toggle.

FORMLIST also adds two Lookup-Reference functions:

  • FORMULAS(auditRange) actively displays the current formulas in the audit range, as an array in a column. To display all formulas, the FORMULAS function should be entered as an array formula into a range in one column that includes more cells than there are formulas in the audit range. The words "FORMULAS FROM RANGE. " should appear below the last displayed formula.
  • FORMRC(auditCell) returns the formula of the designated cell in R1C1-style notation (with braces on array formulas). If the cell does not contain a formula, then FORMRC returns the cell's value (or a zero-length string for a blank cell)

Saites:

You can learn more on how to use Simtools.xlam from the book Probability Models for Economic Decisions, published by MIT Press (2019). More information about this book is also available here.

The Decision Analysis Society offers information about other software products for decision analysis, such as TreePlan. See also ProbabilityManagement.org. Commercial simulation add-ins comparable to Simtools include @Risk, Crystal Ball, xlSim, and ModelRisk.

Simtools and Formlist are open code software.

All materials are the intellectual property of Roger Myerson.
Visas tiesības aizsargātas. © 2010, Roger Myerson.


2.2. UPDATE FROM

The UPDATE-FROM idea is an extension to SQL that allows an UPDATE statement to be driven by other tables in the database. The "target" table is the specific table that is being updated. With UPDATE-FROM you can join the target table against other tables in the database in order to help compute which rows need updating and what the new values should be on those rows. UPDATE-FROM is supported beginning in SQLite version 3.33.0 (2020-08-14).

Other relation database engines also implement UPDATE-FROM, but because the construct is not part of the SQL standards, each product implements UPDATE-FROM differently. The SQLite implementation strives to be compatible with PostgreSQL. The SQL Server and MySQL implementations of the same idea work a little differently.

As an example of how UPDATE-FROM can be useful, suppose you have a point-of-sale application that accumulates purchases in the SALES table. At the end of the day, you want to adjust the INVENTORY table according to the daily sales. To do this, you can run an UPDATE against the INVENTORY table that adjusts the quantity by the aggregated sales for the day. The statement would look like this:

The subquery in the FROM clause computes the amount by which the inventory should be reduced for each itemId. That subquery is joined against the inventory table and the quantity of each affected inventory row is reduced by the appropriate amount.

The target table is not included in the FROM clause, unless the intent is to do a self-join against the target table. In the event of a self-join, the table in the FROM clause must be aliased to a different name than the target table.

If the join between the target table and the FROM clause results in multiple output rows for the same target table row, then only one of those output rows is used for updating the target table. The output row selected is arbitrary and might change from one release of SQLite to the next, or from one run to the next.

2.2.1. UPDATE FROM in other SQL database engines

SQL Server also supports UPDATE FROM, but in SQL Server the target table must be included in the FROM clause. In other words, the target table is named twice in the statement. With SQL Server, the inventory adjustment statement demonstrated above would be written like this:

MySQL supports the UPDATE FROM idea, but it does so without using a FROM clause. Instead, the complete join specification is given in between the UPDATE and SET keywords. The equivalent MySQL statement would be like this:

The MySQL UPDATE statement does not have just one target table like other systems. Any of the tables that participate in the join can be modified in the SET clause. The MySQL UPDATE syntax allows you to update multiple tables at once!