Daugiau

Atnaujinti visus stulpelio langelius, kad jie atitiktų pirmosios eilutės vertę?

Atnaujinti visus stulpelio langelius, kad jie atitiktų pirmosios eilutės vertę?


Turiu taškinį sluoksnį; atributų lentelėje yra su taškais susietų pirminių centroidų x ir y koordinatės (taškai buvo sukurti iš apskritimo bruožų perimetrų ir vis dar turi centroidų duomenis).

Kadangi kiekviename sluoksnyje yra taškai iš dviejų skirtingų daugiakampių, atskiri kiekvieno sluoksnio taškai turi skirtingas centroidines reikšmes. Turiu atnaujinti atributų lentelę, kad kiekviena eilutė turėtų tą pačią reikšmę; patogiai, kiekvienam sluoksniui norima vertė yra nuo pirmosios eilutės (t. y. FID = 1).

Aš dirbu „ModelBuilder“, todėl idealiu atveju tai būtų modeliui palankus sprendimas.

Ar yra lengvas pataisymas, kurio aš netaisau?

Galbūt kažkas yra lauko skaičiuoklėje?


Modelyje tai tik skaičiavimo vertės ir skaičiavimo lauko derinys.

Naudokite šiek tiek „Python“ kodo/žymeklių „Skaičiuoti vertę“, kad ištrauktumėte pirmąją vertę iš duomenų šaltinio. Jei jūsų modelio duomenų elementai skiriasi, koreguokite naudojimą„%Funkcijų klasė%“ir'%Lauko pavadinimas%'kaip pridera.

Tada prijunkite jį prie „Skaičiuoti lauką“. Naudodami Skaičiuoti lauką, dešiniuoju pelės mygtuku spustelėkite įrankį ir nustatykite lauko pavadinimo parametrą kintamuoju.

Pastaba: rodau tik vieną lauką


Eilučių apibrėžimuose skaičiai arba etiketės Eilutės kodas ląstelė identifikuoja kiekvieną eilutę eilutės apibrėžime. Galite nurodyti eilutės kodą, kad jis remtųsi skaičiavimų ir sumų duomenimis.

Eilutės kodo reikalavimai

Visoms eilutėms reikalingas eilutės kodas. Eilės apibrėžime galite sumaišyti skaitinius, raidinius ir skaitmeninius bei nenustatytus (tuščius) eilutės kodus. Eilutės kodas gali būti bet koks teigiamas sveikasis skaičius (mažesnis nei 100 000 000) arba aprašomoji etiketė, identifikuojanti tą eilutę. Aprašomoji etiketė turi atitikti šias taisykles:

Etiketė turi prasidėti abėcėlės ženklu (nuo a iki z arba nuo A iki Z) ir gali būti bet koks skaičių ir raidžių derinys iki 16 simbolių.

Etiketėje gali būti pabraukimo simbolis (_), bet jokie kiti specialūs simboliai neleidžiami.

Etiketėje negalima naudoti nė vieno iš šių rezervuotų žodžių: AND, OR, IF, THEN, ELSE, PERIODS, TO, BASEROW, UNIT, NULL, CPO arba RPO.

Šie pavyzdžiai yra galiojantys eilučių kodai:

Pakeiskite eilutės kodą eilutės apibrėžime

  1. Ataskaitų kūrimo priemonėje spustelėkite Eilučių apibrėžimai, tada atidarykite eilutės apibrėžimą, kurį norite keisti.
  2. Atitinkamoje eilutėje įveskite naują reikšmę langelyje Eilutės kodas stulpelis.

Iš naujo nustatyti skaitinių eilučių kodus

  1. Ataskaitų kūrimo priemonėje spustelėkite Eilučių apibrėžimai, tada atidarykite eilutės apibrėžimą, kurį norite keisti.
  2. Ant Redaguoti meniu, spustelėkite Pervadinti eilutes.
  3. Viduje Pervadinti eilutes dialogo lange nurodykite naujas pradinės eilutės kodo ir eilutės kodo prieaugio reikšmes. Galite iš naujo nustatyti skaitinių eilučių kodus į vienodai išdėstytas reikšmes. Tačiau ataskaitų kūrėjas per numeruoja tik eilutės kodus, prasidedančius skaičiais (pavyzdžiui, 130 arba 246). Jis nekeičia raidžių prasidedančių eilučių kodų (pvz., INCOME_93 arba TP0693).

Kai pervadinate eilučių kodus, ataskaitų kūrėjas automatiškai atnaujinamas TOT ir CAL nuorodos. Pavyzdžiui, jei a TOT eilutė reiškia diapazoną, kuris prasideda eilutės kodu 100, o jūs iš naujo numeruojate eilutes, pradedant nuo 90, pradedant TOT nuoroda keičiama nuo 100 iki 90.


Kaip minėta aukščiau, jei pasirenkamas ketvirtas argumentas „range_lookup“ yra praleistas arba yra TRUE, tada VLOOKUP ieškos „artimos“ atitikties pirmajame peržiūros lentelės stulpelyje. Konkrečiai, VLOOKUP ieškos didžiausios vertės, kuri yra mažesnė arba lygi siekiamai vertei, ir grąžins vertę atitinkamos eilutės devintame stulpelyje.

Tai veiks ir leis vartotojui nustatyti peržiūros lentelę, kad ji atitiktų vieną grąžos vertę įvairioms ieškomoms vertėms. Tačiau, kaip pažymėta Greitas VLOOKUP sintaksės gruntas skyriuje, peržiūros lentelės pirmojo stulpelio duomenys turi būti surūšiuoti didėjančia tvarka, kad tai veiktų.

Apsvarstykite toliau pateiktus pavyzdžius:


Pirmajame bloke, peržiūros lentelės elementai nėra surūšiuoti teisingai: kodas 7, violetinė, išvardytas netinkamai, todėl G6 ir G10 formulės pateikia neteisingą rezultatą. Antrame bloke visos formulės pateikia teisingus rezultatus, nes toje peržiūros lentelėje elementai pateikiami teisinga tvarka.

Jei norite išvengti šios klaidos, jei naudojate VLOOKUP norėdami rasti „uždarą“ atitiktį, visada įsitikinkite, kad jūsų peržiūros lentelė yra tinkamai surūšiuota.

Pastaba: Šiuose pavyzdžiuose, jei diapazonui „lookup“ naudosime FALSE, peržvalgos lentelės rūšiavimo tvarka nebūtų svarbi, o visos formulės grąžintų teisingus rezultatus. Tai yra, kai nustatote VLOOKUP ieškoti tikslios atitikties, paieškos lentelės nereikia rūšiuoti: ji gali būti bet kokia tvarka, o VLOOKUP grąžins teisingą rezultatą, jei bus tiksli atitiktis (arba #N/A klaida, jei nėra atitikimo).


Klasifikuokite tekstą pagal raktinius žodžius

Norėdami suskirstyti tekstą į kategorijas pagal raktinius žodžius, kurių atitiktis yra „yra“, galite naudoti funkciją PAIEŠKA, padedant INDEX ir MATCH. Pateiktame pavyzdyje C5 formulė yra tokia:

kur raktinius žodžius yra pavadintas diapazonas E5: E14 ir kategorijų yra pavadintas diapazonas F5: F14.

Pastaba: tai yra masyvo formulė, kurią reikia įvesti naudojant „Control“ + „Shift“ + „Enter“.

Funkcijos MATCH viduje mes naudojame funkciją PAIEŠKA, kad ieškotume B stulpelio langelių pagal kiekvieną nurodytą diapazoną. raktinius žodžius (E5: E14):

Kadangi mes ieškome kelių elementų (nurodytame diapazone raktinius žodžius), gausime kelis tokius rezultatus:

Vertė! klaida atsiranda, kai SEARCH neranda teksto. Kai SEARCH randa atitiktį, jis grąžina skaičių, atitinkantį teksto vietą langelio viduje.

Norėdami pakeisti šiuos rezultatus į labiau naudojamą formatą, naudojame funkciją ISNUMBER, kuri visas vertes paverčia į TRUE/FALSE taip:

Šis masyvas eina į MATCH funkciją kaip lookup_array, su lookup_value nustatyti kaip TRUE. MATCH grąžina masyvo pirmojo TRUE padėtį (šiuo atveju 7), kuri funkcijai INDEX pateikiama kaip eilutės_numeris:

INDEX grąžina 7 elementą kategorijų, „Auto“, kaip galutinis rezultatas.

Su XLOOKUP

Naudojant funkciją XLOOKUP, šią formulę galima šiek tiek supaprastinti. „XLOOKUP“ gali naudoti tą pačią logiką, kuri naudojama aukščiau esančioje MATCH funkcijoje, todėl lygiavertė formulė yra tokia:

„XLOOKUP“ suranda pirmąją TRUE masyve ir grąžina atitinkamą reikšmę iš kategorijų.

Užkirsti kelią klaidingoms rungtynėms

Viena šio požiūrio problema yra ta, kad galite gauti klaidingas atitiktis iš antrinių eilučių, kurios rodomos ilgesnių žodžių viduje. Pavyzdžiui, jei bandysite atitikti žodį „dr“, taip pat galite rasti „Andrea“, „gerti“, „sausas“ ir pan., Nes šių žodžių viduje yra „dr“. Taip atsitinka todėl, kad SEARCH automatiškai atitinka „yra“.

Norėdami greitai įsilaužti, galite pridėti tarpą tarp paieškos žodžių (t. Y. „Dr“ arba „dr“), kad „dr“ nebūtų užfiksuotas kitu žodžiu. Bet tai nepavyks, jei langelyje „dr“ pasirodys pirmas ar paskutinis, arba su skyrybos ženklais ir pan.

Jei jums reikia tikslesnio sprendimo, viena iš galimybių yra normalizuoti tekstą pirmiausia pagalbinėje stulpelyje, taip pat pridedant pradinę ir galinę tarpą. Tada galite ieškoti ištisų žodžių, apsuptų tarpų.


Rungtynės (G14, 1 lentelė [PARDAVIMŲ REP.], 0))

Taigi, sujungę šias formules, galime pasirinkti du kriterijus (pardavimų atstovo ir metrikos pavadinimas), kad grąžintume atitinkamą vertę.

Kaip indeksuoti 2 atitikimo kriterijus naudojant „Excel“ duomenų patvirtinimą


Palyginkite ir sujunkite bendrinamos darbaknygės kopijas

Kai reikia sujungti skirtingas to paties „Excel“ failo versijas, Palyginti ir sujungti funkcija praverčia. Tai ypač naudinga, kai keli vartotojai bendradarbiauja toje pačioje „Excel“ darbaknygėje, nes tai leidžia peržiūrėti visų vartotojų pakeitimus ir komentarus vienu metu. Norėdami pasinaudoti šia funkcija, būtinai atlikite šiuos pasiruošimus:

    Pasidalykite savo „Excel“ darbaknyge prieš pateikdami ją kitiems vartotojams.

Dabar, kai visi pradiniai pasiruošimai atlikti tinkamai, esate pasiruošę sujungti bendros darbo knygos kopijas.

1. Įgalinkite „Excel“ funkcijų palyginimo ir sujungimo funkciją

Nors funkcija „Palyginti ir sujungti darbaknyges“ yra prieinama visose „Excel 2016“, „Excel 2013“, „Excel 2010“ ir senesnėse versijose, ši komanda pagal numatytuosius nustatymus niekur nerodoma „Excel“. Norėdami pridėti jį prie sparčiosios prieigos įrankių juostos, atlikite šiuos veiksmus:

  • Atidarykite išskleidžiamąjį meniu Greita prieiga ir pasirinkite Daugiau komandų.
  • Viduje „Excel“ parinktys dialogo lange, pasirinkite Visos komandos pagal Pasirinkite komandas iš.
  • Komandų sąraše slinkite žemyn iki Palyginkite ir sujunkite darbaknyges, pasirinkite jį ir spustelėkite Papildyti mygtuką, kad perkeltumėte jį į dešinįjį skyrių.
  • Spustelėkite Gerai.

2. Palyginkite ir sujunkite darbo knygas

Kai visi vartotojai baigs dirbti su jūsų bendrinama „Excel“ darbaknyge, galite sujungti visas kopijas į vieną failą.

  • Atidarykite bendrinamą darbaknygės pagrindinę versiją.
  • Spustelėkite Palyginkite ir sujunkite darbaknyges komandą sparčiosios prieigos įrankių juostoje.
  • Pasirodžiusiame dialogo lange pasirinkite bendrinamos darbaknygės kopiją, kurią norite sujungti. Norėdami pasirinkti kelias kopijas, paspauskite klavišą „Shift“, kol spustelėsite failų pavadinimus, tada spustelėkite Gerai.

Padaryta! Kiekvienos kopijos pakeitimai sujungiami į vieną darbaknygę.

3. Peržiūrėkite pakeitimus

Jei norite iš karto pamatyti visus skirtingų naudotojų redagavimus, atlikite šiuos veiksmus:

  • Perjunkite į Apžvalga tab & gt Pakeitimai grupę ir spustelėkite Kurso pakeitimai & gt Paryškinti pakeitimus.
  • Viduje Paryškinti pakeitimus dialogo lange, pasirinkite Visi viduje Kada dėžė, Visi viduje PSO langelį, išvalykite Kur laukelyje, pasirinkite Paryškinkite pakeitimus ekrane langelį ir spustelėkite Gerai.

Norėdami pažymėti eilutes ir stulpelius su skirtumais, „Excel“ paryškina stulpelių raides ir eilučių skaičius tamsiai raudona spalva. Ląstelių lygyje skirtingų naudotojų redagavimai pažymėti skirtingomis spalvomis. Norėdami pamatyti, kas padarė konkretų pakeitimą, tiesiog užveskite pelės žymeklį virš langelio.


Sukurkite projektą

Norėdami sukurti projektą, atlikite šios procedūros veiksmus.

Šablono parinkiklyje pasirinkite šabloną kairėje ir peržiūrėkite jį dešinėje. Šiame pavyzdyje pasirinkite Vaizdų žymėjimas sąraše, tada pasirinkite Sukurti projektą.

Ant Redaguoti projektą puslapyje, pasirinkite Redaguoti ypatybes skirtuką, tada įveskite savo HIT informaciją.

Viduje Apibūdinkite savo HIT darbuotojams skyrius Redaguoti ypatybes skirtuką, atlikite šiuos veiksmus:

Laukas apibūdinimas
projekto pavadinimas Projekto pavadinimo laukas jau sukurtas, bet galite jį pakeisti. Įsitikinkite, kad projekto pavadinimas yra aprašomasis, kad galėtumėte lengvai atpažinti projektą, kai norite paskelbti projekto paketą. Projekto pavadinimas yra jūsų nuoroda ir nėra rodomas darbuotojams.
Pavadinimas Įveskite užduoties pavadinimą. Būk specifiškas. Pvz., Vietoj žymų nuotraukų įveskite žymės orientyrų vaizdus. Pavadinimas rodomas darbuotojams.
apibūdinimas Apibūdinkite užduotį. Paieškos mechanizmas ieško pagal šį aprašymą, todėl naudokite žodžius, kurie, jūsų manymu, padės darbuotojams rasti jūsų HIT.
Raktažodžiai Įveskite kableliais atskirtą žodžių sąrašą, kurį darbuotojai gali naudoti norėdami rasti jūsų HIT.

Viduje Nustatykite savo užduotį skyrius Redaguoti ypatybes skirtuką, atlikite šiuos veiksmus:

Kiekvienoje užduotyje nurodykite unikalių darbuotojų skaičių. Viena užduotis kiekvienai užduočiai reiškia, kad tik vienas darbuotojas dirba su užduotimi. Galbūt norėsite, kad keli darbuotojai atliktų užduotį ir išsiaiškintų, ar tarp darbuotojų yra susitarimas, o tai gali padidinti jūsų pasitikėjimą rezultatais.

Darbuotojas gali priimti užduotį tik vieną kartą ir gali pateikti tik vieną užduotį. Tai garantuoja, kad keli darbuotojai turi atlikti užduotį su keliomis užduotimis.

Nurodykite, kiek laiko darbuotojai gali priimti užduotis. Pasibaigus šiam laikui, darbuotojai negali priimti paketo užduočių. Darbuotojai gali baigti dirbti su anksčiau priimtomis užduotimis, net jei partija nebėra prieinama kitiems.

Viduje Darbuotojo reikalavimai skyrius Redaguoti ypatybes skirtuką, atlikite šiuos veiksmus:

Parinktis apibūdinimas
Reikalauti, kad darbuotojai būtų meistrai, kad atliktų jūsų užduotis Pasirinkite, kad nurodytumėte, jog jums reikia „Mechanical Turk“ pagrindinių darbuotojų, kad jie atliktų jūsų užduotis. Meistrai yra elitinė darbuotojų grupė, pademonstravusi puikų našumą, atlikdama tūkstančius užduočių visoje „Mechanical Turk“ rinkoje. Meistrai turi išlaikyti šį aukštą našumo lygį, kitaip jie gali prarasti šį skirtumą.
Nurodykite, kokias papildomas kvalifikacijas darbuotojai turi atitikti, kad galėtų atlikti jūsų užduotis Pridėkite iki penkių reikalavimų, pvz., Darbuotojo HIT patvirtinimo rodiklį, geografinę vietą arba minimalų patvirtintų HIT skaičių. Be to, galite nustatyti Aukščiausios kvalifikacijos kalbų sklandumas ar demografiniai kriterijai, kurie padidins kiekvienos atliktos užduoties kainą. Jei sukūrėte pasirinktines kvalifikacijas, jas galite rasti išskleidžiamojo meniu apačioje.
Projekte yra suaugusiesiems skirto turinio Pažymėkite žymės langelį, kad nurodytumėte, jog projekte gali būti galimai aiškaus ar įžeidžiančio turinio.

Pasirink Dizaino išdėstymas skirtuką ir redaguokite šablono HTML. Galite nukopijuoti HTML redaktoriuje į kitą failą. Norėdami peržiūrėti puslapio HTML, atidarykite failą naršyklėje. Kad jūsų formos elementai gerai veiktų su „Amazon Mechanical Turk“, rekomenduojame naudoti mūsų pasirinktinius HTML elementus.

Sukurkite kintamąjį uždėdami dolerio ženklą prieš garbanotas skliaustus aplink stulpelio pavadinimą savo HIT duomenų faile. Tai gali būti tekstas šablono tekste, šaltinio URL paveikslėlyje ar vaizdo įrašo žymoje ir daugybė kitų dalykų. Kintamojo vertė gaunama iš jūsų stulpelio HIT duomenų failas su ta pačia reikšme antraštės eilutėje. Norėdami gauti informacijos, kuri turi keistis iš užduoties į užduotį, naudokite kintamieji. Šablono pavyzdyje vaizdo žymoje yra vaizdo šaltinio kintamasis: $ .

Sukurkite savo HIT duomenų failą. HIT duomenų failas yra kableliais atskirtos vertės (.csv) failas, kuriame yra duomenų reikšmės, naudojamos kintamiesiems pakeisti. Daugelis skaičiuoklės programų, įskaitant „Microsoft Excel“, gali išsaugoti failus. csv failo formatas.

Kiekviena nauja failo eilutė reiškia naują HIT. Duomenų reikšmių skaičius vienoje eilutėje turėtų tiksliai atitikti jūsų projekte naudojamų kintamųjų skaičių. Pirmoji eilutė. csv HIT duomenų faile yra duomenų verčių stulpelių antraštės. Tvarka, kuria naudojate kintamuosius projekto šablone, neturi atitikti stulpelių tvarkos. csv failą.

Šablono kintamųjų pavadinimai turi atitikti HIT duomenų failo verčių stulpelių antraštes. Pvz., Jei naudojate kintamąjį $ , HIT duomenų faile turi būti stulpelis su image_url Antraštė.

Jūsų HIT duomenų faile negali būti eilučių pertraukų tarp duomenų langelių ir jis nepalaikomas kaip eilutės pertraukos simbolis. „MacOS“ kompiuteriai įterpia šį simbolį konvertuodami „Microsoft Excel“ lentelę į. csv failą.

Jei jūsų HIT yra vaizdų ar vaizdo įrašų, į HIT duomenų failą turite įtraukti nuorodas į juos. Vaizdai ir vaizdo įrašai turi būti viešai prieinami. Naudotojo sąsaja nesuteikia įrankio vaizdams ar vaizdo įrašams įkelti. Jei norite įkelti vaizdus į „Amazon S3“, apsvarstykite galimybę naudoti vieną iš viešai prieinamų įrankių.

„Mechanical Turk“ pateikia rezultatus lentelėje, kuri saugoma .csv faile. Įvesties ir atsakymų laukų skaičius viename HIT nustato stulpelių skaičių Rezultatai lentelę. Viena eilutė Rezultatai lentelėje pateikiamas visas vieno HIT atsakymų rinkinys, kaip parodyta šiame pavyzdyje.

Pasirinkite Sutaupyti periodiškai, kad išsaugotumėte savo projekto HTML, kad neprarastumėte darbo.

„Mechanical Turk“ ištrina projektą, jei nenaudojate projekto 120 dienų iš eilės. Jei norite pasiekti savo projektą ilgesnį laiką, rekomenduojame nukopijuoti HTML ir išsaugoti jį savo sistemoje.

Pasirink Peržiūrėti ir baigti skirtuką, peržiūrėkite šablono peržiūrą ir atlikite šiuos veiksmus:

Jei esate patenkinti savo pakeitimais, pasirinkite Baigti.

Jei reikia atlikti pakeitimus, pasirinkite Dizaino išdėstymas skirtuką ir pataisykite HTML.

Šiuo metu kintamieji neužpildomi.

Po to, kai pasirinksite Baigti, Sukurti rodomas puslapis ir jūsų projektas rodomas esamų projektų sąraše.

Tada paskelbkite paketą su šiuo šablonu, kad jis būtų prieinamas darbuotojams. Norėdami gauti daugiau informacijos apie partijos paskelbimą, žr. HIT paketų paskelbimas.

Dėkojame, kad pranešėte mums, kad atliekame gerą darbą!

Jei turite akimirką, pasakykite mums, ką padarėme teisingai, kad galėtume padaryti daugiau.

Dėkojame, kad pranešėte mums, kad šį puslapį reikia dirbti. Atsiprašome, kad nuvylėme.

Jei turite laiko, pasakykite mums, kaip galėtume patobulinti dokumentus.


Kaip VLOOKUP () veikia „Excel“

„Excel“ funkcija VLOOKUP () grąžina atitinkamą reikšmę, kai atitinka paieškos reikšmę, naudojant šią sintaksę:

VLOOKUP (lookup_value, lookup_range, offset, is_sorted)

A lentelė paaiškina šiuos argumentus.

Paaiškinimas

Privaloma/neprivaloma

lookup_value

Tai yra vertė, kurią bandote atitikti.

lookup_range

Tai nustato duomenų diapazoną.

Ši skaitinė reikšmė identifikuoja atitinkamą stulpelį, esantį „lookup_value“ dešinėje.

Tai loginė vertė: TRUE arba FALSE. TRUE yra numatytasis ir nurodo, kad lookup_value duomenys yra surūšiuoti. Naudodami FALSE nurodykite, kad lookup_value nėra surūšiuota.

Trumpai tariant, VLOOKUP () naudoja paieškos vertę, kad grąžintų reikšmę kitame stulpelyje. Dabar naudokime ją norėdami rasti artimiausią atitinkančią vertę.


Programinės įrangos priedai

„Simtools.xlam“ yra „Microsoft Excel“ priedas. „Simtools“ prideda statistines funkcijas ir procedūras, skirtas skaičiuoklėse atlikti Monte Karlo modeliavimą ir rizikos analizę. Jame taip pat yra paprastas audito įrankis (anksčiau vadinamas „Formlist“), kuris prideda bet kurio pasirinkto diapazono formulių rodymo procedūras. „Simtools“ buvo sukurtas siekiant palengvinti tikimybių ir statistikos taikymą bei padėti vadovams atlikti sudėtingą sprendimų analizę. Šios programos yra platinamos kaip nemokama programa asmeniniam naudojimui ir gali būti laisvai platinamos studentams ir dėstytojams akademinėje institucijoje. Visos kitos teisės saugomos.

Daugiau apie tai, kaip naudotis „Simtools“, galite sužinoti iš knygos „Tikimybių modeliai ekonominiams sprendimams“, kurią paskelbė „MIT Press“ (2019) [galima rasti „Amazon.com“].

SIMTOOLS diegimas

Norėdami įdiegti „Simtools“, atsisiųskite Simtools.xlam failą iš šios svetainės ir išsaugokite šį failą pasirinktame kataloge standžiajame diske. (Galite pasirinkti išsaugoti jį visur, kur jūsų kompiuteryje saugomi „Excel“ priedai, bet tai nėra būtina.) Saugodami įsitikinkite, kad failo pavadinimas yra teisingas xlam plėtinys, reiškiantis „Excel“ priedą.

Tada, norėdami įdiegti „Simtools“ programoje „Excel“, naudokite Failas: Parinktys: Papildiniai: Tvarkykite „ExcelAddIns“: eikite komandų seka „Windows“ kompiuteryje arba „Tools: Add-ins“ komandų seka „Mac“ ir pasirinkite parinktį „Simtools“ dialogo lange „Galimi priedai“ arba naršydami raskite Simtools.xlam, kur jį išsaugojote. Įdiegus „SimTools“ turėtų būti rodomas kaip skirtukas „Excel“ juostelėje. Jei jis nerodomas, gali reikėti pridėti aplanką, kuriame įdėjote simtools.xlam, kaip patikimą „Excel“ vietą pagal failą: Parinktys: TrustCenter: TrustCenterSettings: TrustedLocations: AddNewLocation.

Jei naudojate „Excel 2007“ ir naujesnes versijas: spustelėkite čia, kad gautumėte SIMTOOLS.XLAM, kuriame nuo 2017 m. Kovo mėn. Yra „Formlist“.

Pastaba: Jei jūsų naršyklė konvertuoja „xlam“ failus į ZIP failus arba turite kitų atsisiuntimo problemų, spustelėkite čia, kad atsisiųstumėte zip failą, kuriame yra Simtools.xlam su pdf failais, dokumentuojančiais jo ypatybes.

(Norėdami gauti tik „Formlist“, skirtą „Excel 2007“ ir naujesnėms versijoms: FORMLIST.XLAM.)

(Jei naudojate senesnes „Excel“ versijas iki 2007 m., Galite spustelėti čia, kad atsisiųstumėte seną simtools.xla ir seną formlist.xla. Taip pat yra ir senesnės versijos „simtools.xla“ ir „formlist.xla“, skirtos senesnei „Excel 5“ „MS Office“ versijai .)

XLA failų atsisiuntimo problemų sprendimas: Jei jūsų naršyklė paleidžia „Excel“, o ne išsaugo failus diske, dešiniuoju pelės mygtuku spustelėkite aukščiau esančias nuorodas ir išskleidžiamajame meniu pasirinkite parinktį „Išsaugoti kaip“. Jei jūsų naršyklė pakeis .xlam failo plėtinys į .xlsx, turėtumėte galėti naudoti šiuos failus, pervadinę juos, kad atkurtumėte teisingus .xlam failo pavadinimas.
Jei kyla problemų dėl priedų funkcijų „xls“ darbaknygėje, kuri buvo sukurta kitame kompiuteryje, turėtumėte naudoti „Excel“ redagavimo nuorodų procedūrą.

SIMTOOLS 3.4 savybės:

„SIMTOOLS.XLAM“ prie „Excel“ prideda šias 32 statistines funkcijas, išvardytas šešiose kategorijose. Neprivalomi parametrai rodomi kursyvas.

Atvirkštinės kaupiamosios tikimybės funkcijos. Šios funkcijos kartu su „Excel“ funkcija NORMINV arba NORM.INV gali būti naudojamos generuoti atsitiktinius kintamuosius, kai pirmąjį parametrą (vadinamą „tikimybe“ arba „randprobu“) sukuria RAND () arba CORAND funkcija:

  • BETINV (tikimybė, vidurkis, stdevn, apatinė, viršutinė) grąžina atvirkštines kumuliacines beta atsitiktinio kintamojo reikšmes, parametruotas pagal jo vidurkį ir standartinį nuokrypį. Kai pirmasis parametras yra RAND, BETINV pateikia ribotą atsitiktinį kintamąjį. (Numatytosios apatinės ir viršutinės ribos yra 0 ir 1.)
  • BINOMINV (tikimybė, n, p) grąžina dvejetainio atsitiktinio kintamojo atvirkštines kaupiamąsias vertes. Kai pirmasis parametras yra RAND, BINOMINV pateikia ribotą sveikų skaičių atsitiktinį kintamąjį nuo 0 iki n, o vidurkis n*p.
  • DISCRINV (randprobas, reikšmės, tikimybės) pateikia atvirkštines kumuliacines vertes diskrečiam atsitiktiniam kintamajam. Kai pirmasis parametras yra RAND, DISCRINV grąžina atskirą atsitiktinį kintamąjį su galimomis reikšmėmis ir atitinkamomis tikimybėmis tam tikruose diapazonuose.
  • EXPOINV (tikimybė, vidurkis) grąžina atvirkštines sumines eksponentinio atsitiktinio kintamojo vertes. Kai pirmasis parametras yra RAND, EXPOINV pateikia neneigiamą atsitiktinį kintamąjį (dažnai naudojamą atsitiktiniams laukimo laikams).
  • GAMINV (tikimybė, vidurkis, stdevn) grąžina atvirkštines kaupiamąsias gama atsitiktinio kintamojo reikšmes, parametruotas pagal jo vidurkį ir standartinį nuokrypį. Kai pirmasis parametras yra RAND, GAMINV pateikia neneigiamą atsitiktinį kintamąjį.
  • GENLINV (tikimybė, quart1, quart2, quart3, žemiausias, aukščiausias) grąžina atvirkštines kaupiamąsias apibendrinto log loginio atsitiktinio kintamojo reikšmes, kurių tikimybė yra 25% mažesnė už kvart1 reikšmę (pirmojo kvartilio viršuje), 50% tikimybė yra mažesnė už quart2 ir 75% tikimybė yra žemesnė už quart3. Apibendrintas lognormalus atsitiktinis kintamasis yra pastovus plius arba minus lognormalus atsitiktinis kintamasis. Kai pirmasis parametras yra RAND (), GENLINV pateikia atsitiktinį kintamąjį, kuris gali būti teigiamas arba neigiamas, tačiau yra apribotas siauresnio kvartilio diapazono pusėje. Jei nurodomos pasirenkamos mažiausios ir didžiausios vertės (atitinkančios mažiausią & lt quart1 & lt quart2 & lt quart3 & lt didžiausią), tada apibendrinto-lognormalio atsitiktinio kintamojo reikšmės koreguojamos, jei reikia, kad GENLINV neviršytų šių ribų (didėjant iki mažiausios vertės nuo žemiau, sumažėja iki didžiausios vertės iš viršaus).
  • LAPLAINV (tikimybė, vidurkis, stdevn) pateikia atvirkštines sumines Laplaso (arba dvigubo eksponentinio) atsitiktinio kintamojo vertes, parametruotas pagal jo vidurkį ir standartinį nuokrypį. Kai pirmasis parametras yra RAND, LAPLAINV pateikia Laplaso atsitiktinį kintamąjį, kurio uodegose yra didesnė tikimybė nei normaliame su tais pačiais parametrais.
  • LNORMINV (tikimybė, vidurkis, stdevn) grąžina atvirkštines kumuliacines lognormalio atsitiktinio kintamojo reikšmes, parametruotas pagal jo vidurkį ir standartinį nuokrypį. Kai pirmasis parametras yra RAND, LNORMINV pateikia neneigiamą atsitiktinį kintamąjį.
  • POISINV (tikimybė, vidurkis) pateikia atvirkštines kumuliacines Puasono atsitiktinio kintamojo reikšmes. Kai pirmasis parametras yra RAND, POISINV pateikia neneigiamą sveiką atsitiktinį kintamąjį.
  • TRIANINV (tikimybė, apatinė riba, labiausiai tikėtina, viršutinė riba) grąžina atsitiktinio kintamojo su trikampio tikimybės tankiu atvirkštines sumines vertes. Kai pirmasis parametras yra RAND, TRIANINV pateikia ribotą atsitiktinį kintamąjį.
  • XTREMINV (tikimybė, vidurkis, stdevn) grąžina atvirkštines sumines kraštutinės vertės (arba Gumbelio) atsitiktinio kintamojo vertes, parametruotas pagal jo vidurkį ir standartinį nuokrypį. Kai pirmasis parametras yra RAND, XTREMINV pateikia atsitiktinį kintamąjį, kuris gali būti teigiamas arba neigiamas. (Jei W yra Veibulo atsitiktinis kintamasis, tada -LN (W) turi tokį kraštutinių reikšmių pasiskirstymą.)

Funkcijos, susijusios su atsitiktinių kintamųjų koreliacijomis:

  • CORAND (CorrelArray, RandSource), įvestas kaip masyvo formulė ląstelių eilutėje iš eilės, grąžina atsitiktines reikšmes atsitiktiniams kintamiesiems, kurie turi koreliaciją, kaip nurodyta duotoje „CorrelArray“, sudaryti. (Taip pat žr. NORMIZE.) Kiekviena CORAND grąžintos masyvo reikšmė yra tarsi RAND, nes ji generuojama tolygiai tarp 0 ir 1, tačiau CORAND masyvo vertės nėra nepriklausomos. Bet kurio sveikojo skaičiaus n, kuris yra didesnis nei 1, „CorrelArray“ parametras gali būti kvadratinis n-po-n koreliacijų masyvas n atsitiktinių kintamųjų (kaip grąžino MCORRELS), o tada CORAND grąžina n atitinkamai koreliuotų verčių masyvą. Toks n-by-n koreliacijos masyvas turėtų būti simetriškas ir turėti įstrižainėje. „CorrelArray“ parametras taip pat gali būti vienas skaičius, tokiu atveju CORAND veikia taip, tarsi „CorrelArray“ parametras būtų 2–2 masyvas, grąžinantis dvi atsitiktines vertes su nurodyta koreliacija. Kai „CorrelArray“ yra skaičius, o pasirinktinis „RandSource“ parametras yra nuoroda į kitą langelį, kuriame yra RAND arba CORAND formulė, funkcija CORAND vienoje ląstelėje pateikia vienodą atsitiktinę vertę, kuri yra koreliuojama su „RandSource“ langeliu pagal „CorrelArray“ numerį. (Norėdami gauti daugiau informacijos apie CORAND, žr. Pastabas žemiau.)
  • MCORRELS (dataRange) grąžina koreliacijos koeficientų matricą tarp duomenų diapazono stulpelių. Jei duomenų diapazone yra n stulpelių, MCORRELS turėtų būti įvestas kaip masyvo formulė kvadrato n-by-n diapazone.
  • MIDRAND (koreliacija, duotaCoValue) grąžina sąlyginę CORAND mediana, atsižvelgiant į kitos CORAND reikšmę, ir koreliaciją tarp jų. Naudojamas subjektyviam koreliacijų vertinimui.
  • MSQRT (squarearray) pateikia tam tikro kvadratinio masyvo mažesnio trikampio matricos kvadratinę šaknį (arba Cholesky koeficientą). Masyvo funkcija.
  • NORMIZE (duomenų stulpelis) grąžina normalizuotų reitingų reikšmių masyvą, paimtą iš standartinio normaliojo pasiskirstymo (esant trapiems vidurkiams) ir reitinguojamą kaip duomenų stulpelis. Kai CORAND naudojami nuolatiniams atsitiktiniams kintamiesiems, kurie nėra normalūs, sukurti, CORAND koreliacijos parametrai turėtų būti normalizuotos rango koreliacijos, kurias galima apskaičiuoti pagal duomenis, kiekvienai duomenų eilutei taikant NORMIZE ir tada apskaičiuojant šių normalizuotų masyvų koreliacijas.
    (Pastaba: NORMIZE gali grąžinti klaidos pranešimą, kai jis įvedamas į diapazoną, kurio dydis nėra toks pat kaip duomenų stulpelio. Tačiau skaičiavimo klaida programoje „Excel 97“ taip pat gali sukelti šį klaidos pranešimą, kai NORMIZE masyvas perskaičiuojamas. Tokiu atveju , skaičiuoklė turėtų būti perskaičiuota naudojant klavišų kombinaciją Ctrl+Alt+F9, kuri nurodo „Excel“ perskaičiuoti visas ląsteles.)
  • PRODS (vertės) padaugina kiekvieną reikšmių porą tam tikrame diapazone ir grąžina produktus kaip kvadratinį masyvą. Reikšmės turi būti pateiktos vienoje eilutėje arba viename stulpelyje. Norėdami iliustruoti šios funkcijos naudojimą, tarkime, kad diapazonas pavadintas „korpusai"yra kvadratinis simetriškas masyvas, kuriame išvardytos įvairių akcijų atsitiktinės grąžos už akciją koreliacijos, diapazonas pavadintas"stdevns"išvardyti standartiniai šių akcijų grąžos nuokrypiai ir diapazonas, pavadintas"akcijų"išvardijamas šių akcijų akcijų skaičius tam tikrame investiciniame portfelyje, tada standartinis visos portfelio grąžos nuokrypis yra
    SUMPRODUCT (PRODS (akcijos), PRODS (stdevns), korpusai)^0.5

Sprendimų analizės funkcijos:

  • ARGMAX (etiketės, vertės, testCells, kriterijus) pateikia etiketę, atitinkančią maksimalią vertę, kurioje atitinkamos bandomosios ląstelės (jei yra) atitinka kriterijų.
  • CE (pajamos, RiskTolConst, RiskTolSlope) grąžina atsitiktinio paėmimo iš pajamų diapazono tikrumo ekvivalentą sprendimų priėmėjui, kuris nuolat toleruoja riziką (arba linijinę rizikos toleranciją, kai naudojamas pasirenkamas RiskTolSlope parametras). Kai rizikos tolerancija yra teigiamas skaičius, CE vertė yra tarp minimalios ir vidutinės pajamų vertės, o CE tampa artimesnė vidurkiui, kai padidėja tolerancija rizikai. Jei tolerancija rizikai yra neigiama konstanta (žyminti elgesį siekiant rizikos), tada CE vertė yra tarp pajamų verčių vidurkio ir maksimumo. Jei „RiskTolConst“ parametras yra lygiai lygus 0, o „RiskTolSlope“ praleidžiamas, funkcija CE grąžina pajamų verčių vidurkį. (CE apskaičiuojamas UTIL konvertuojant pajamas į naudingumo vertes, apskaičiuojant šių naudingumo verčių vidurkį ir UINV konvertuojant šią vidutinę komunalinę paslaugą į pinigų vienetus. Pajamų diapazone esantys skaitmeniniai įrašai ignoruojami. CE priklausomybė nuo tolerancijos rizikai yra nenutrūkstama kai rizikos tolerancija yra lygi nuliui, nes šiek tiek mažesnė tolerancija suteikia CE arti maksimalių pajamų, o šiek tiek didesnė tolerancija - CE arti minimalių pajamų. Jei naudojamas parametras „RiskTolSlope“, nulinė arba neigiama rizikos tolerancija sukuria klaida.)
  • RISKTOL (HighIncome, LowIncome, CertainEquiv) grąžina pastovų rizikos toleravimą, kad loterija, mokanti dideles arba mažas pajamas, kurių kiekvienos tikimybė yra 1/2, turi įvertintą tikrumo ekvivalentą.
  • UTIL (pajamos, RiskTolConst, RiskTolSlope) grąžina piniginių pajamų naudingąją vertę sprendimų priėmėjui, turinčiam pastovią ar tiesinę rizikos toleranciją.
  • UINV (naudingumas, RiskTolConst, RiskTolSlope) grąžina UTIL funkcijos tikėtinos naudos piniginio tikrumo ekvivalentą su tais pačiais rizikos toleravimo parametrais.

Funkcijos diskrečiam tikimybių pasiskirstymui analizuoti:

  • CEPR (vertės, tikimybės, RiskTolConst, testCells, kriterijus) grąžina sprendimų priėmėjui, kuris nuolat toleruoja riziką, tikrumo ekvivalentą atsitiktinėms pajamoms, gautoms iš nurodytų verčių pagal atitinkamas tikimybes, su sąlyga, kad įvykis, kai atitinkamos bandomosios ląstelės (jei yra) atitinka kriterijų. Kai „RiskTolConst“ parametras yra 0, funkcija CEPR grąžina sąlyginę laukiamą vertę.
  • CORRELPR (reikšmės1, reikšmės2, tikimybės) pateikia koreliacijos koeficientą diskrečiam tikimybių pasiskirstymui su atitinkamomis dviejų atsitiktinių kintamųjų reikšmėmis.
  • COVARPR (reikšmės1, reikšmės2, tikimybės) grąžina atskiro tikimybių skirstinio kovarianciją su atitinkamomis dviejų atsitiktinių kintamųjų reikšmėmis.
  • STDEVPR (vertės, tikimybės) grąžina atskiro tikimybių pasiskirstymo standartinį nuokrypį su atitinkamomis atsitiktinio kintamojo reikšmėmis.

Regresinės analizės funkcijos:

  • REGRESSN (XDataRange, YDataRange) aktyviai grąžina dauginės regresijos išvestį, kad numatytų Y kaip atsitiktinį kintamąjį, kuris tiesiškai priklauso nuo aiškinamųjų X kintamųjų. REGRESSN turėtų būti įvestas kaip masyvo formulė diapazone, kuriame yra 7 eilutės ir tiek stulpelių, kiek X duomenų diapazonas.
  • YHATSTE („XDataRange“, „NewXRow“, „RegressnStdErr“) grąžina standartinę apskaičiuoto sąlyginio Y vidurkio (dažnai vadinamo „Y-skrybėlė“) klaidą tam tikroje naujoje X eilutėje daugybinėje regresijoje.

Funkcijos atsitiktinai generuojant atskirus paskirstymus:

  • DIRICH (alfa masyvas, RandSource), įvestas kaip masyvo formulė diapazone, kurio dydis yra toks pat kaip ir alfa masyvo, pateikia Dirichlet atsitiktines trupmenas, kurių suma lygi 1. Šios atsitiktinės trupmenos turi priemones, kurios yra proporcingos atitinkamoms alfa masyvo reikšmėms. Didesnės alfa masyvo vertės duoda mažesnę dispersiją. (RANDom įvestys, skirtos atsitiktinėms DIRICH reikšmėms valdyti, gali būti pateikiamos išorėje pasirinktiniame „RandSource“ diapazone, kurio dydis yra toks pat kaip ir alfa masyvo. Priešingu atveju DIRICH automatiškai gauna atsitiktines įvestis automatiškai, netiesiogiai paskambindama į „Excel-VBA“ atsitiktinių skaičių generatorių.)
  • DIRALPHA (dataRange), įvesta kaip masyvo formulė ląstelių eilutėje vienoje eilutėje, grąžina apskaičiuotus Dirichlet skirstinio alfa parametrus. Kiekvienoje duomenų diapazono eilutėje turi būti neigiami skaičiai, kurių suma yra 1.
  • LGT (x) yra logistinis pasiskirstymas. 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)

Nuorodos:

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.
Visos teisės saugomos. © 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!