Fórum pro uživatele kancelářského balíku OpenOffice | LibreOffice
 

#1 Re: Calc » Proměnná v Calc vzorci - VYŘEŠENO » 12. 10. 2021 20:38:11

Tak to mi neskutočne pomohlo. Škoda, že som o tom nevedel skôr.

Toto:
=IF(ISBLANK(C2);"";IF(ISBLANK(VLOOKUP(C2;$'zoznam markerov'.$A$2:$'zoznam markerov'.$D$199;4;FALSE()));"";CONCAT(ROUND(D3*VLOOKUP(C2;$'zoznam markerov'.$A$2:$'zoznam markerov'.$D$199;4;FALSE());2);" ";VLOOKUP(C2;$'zoznam markerov'.$A$2:$'zoznam markerov'.$C$199;3;FALSE()))))

Som bol schopný zredukovať na toto:
=IF(ISBLANK(C2);"";IF(ISBLANK(koef);"";CONCAT(ROUND(D2*koef;2);" ";unitUS)))

Výsledok: https://bit.ly/2YEOS3C

Ďakujem za trpezlivosť :-)

#2 Re: Calc » Proměnná v Calc vzorci - VYŘEŠENO » 12. 10. 2021 17:34:36

Ďakujem za ochotu a sorry za chýbajúci funkčný príklad z mojej strany. Strávil som pred prázdnym zošitom 15 minút a žiadna jednoduchá analógia k môjmu problému ma nenapadla. A to ja som fanúšik ad-absurdum analógií.
To Vaše riešenie funguje perfektne, ale mám otázku: kde je tam deklarované že VAL1 = $G$2 a VAL2 = $H$2. Lebo buď som slepý, alebo to nikde nemôžem nájsť. Je to deklarované v nejakej bunke, v rámci vzorca, alebo niekde úplne inde v nastaveniach?
A ďakujem aj za objasnenie rozdielu medzi zošitom a listom v rámci Calc.

#3 Re: Calc » Proměnná v Calc vzorci - VYŘEŠENO » 12. 10. 2021 11:03:55

Žial, nenapadá ma zjednodušená verzia môjho problému. Ale tu je reálny problém. Toto je môj vzorec:
=IF(ISBLANK(C2);"";IF(ISBLANK(VLOOKUP(C2;$'zoznam markerov'.A2:$'zoznam markerov'.D199;4;TRUE()));"";CONCAT(ROUND(D2*VLOOKUP(C2;$'zoznam markerov'.A2:$'zoznam markerov'.D199;4;TRUE());2);" ";VLOOKUP(C2;$'zoznam markerov'.A2:$'zoznam markerov'.C199;3;TRUE()))))
V tom vzorci sa 2x vyskytyje toto:
VLOOKUP(C2;$'zoznam markerov'.A2:$'zoznam markerov'.D199;4;TRUE())
Táto časť vzorca vracia hodnotu z buňky na základe vzťahov medzi tabuľkami. Rád by som tú časť vzorca deklaroval len raz (napr. na začiatku vzorca) a potom na to len odkazoval vo vzorci. Ten vzorec by bol následne kratší a prehliadanejší. Tiež by ma zaujímalo, či je v Calc možnosť písať vzorec do špeciálneho editora, v ktorom by som mohol daný vzorec zalamovať na nové riadky kvôly sprehladneniu syntaxe (ako normálny programovací jazyk).
Čiže by som mohol celkový vzorec napísať nejak takto:


deklaracia premennych...
VAL1 = VLOOKUP(C2;$'zoznam markerov'.A2:$'zoznam markerov'.D199;4;TRUE())
VAL2 = VLOOKUP(C2;$'zoznam markerov'.A2:$'zoznam markerov'.C199;3;TRUE())

pouzitie premennych vo vzorci...
=IF(ISBLANK(C2);"";IF(ISBLANK(VAL1);"";CONCAT(ROUND(D2*VAL1;2);" ";VAL2)))

Výrazne by to sprehladnilo vzorec.

#4 Calc » Proměnná v Calc vzorci - VYŘEŠENO » 12. 10. 2021 09:01:01

hal_sk
Odpovědí: 6

Ahoj,
Je možné používať premenné vo vzorcoch? Jedná sa mi o to, aby som sa vyhol duplikovaniu niektorých častí kódu v rovnakom vzorci. S týmto problémom sa stretám hlavne keď používam VLOOKUP, ktorý mi ťahá rovnakú hodnotu z iných zošitov na viacerých miestach vo vzorci. Bolo by vhodné si tú hodnotu deklarovať na začiatku vzorca pod nejakým názvom a následne by som v tom vzorci len odkazoval na tú hodnotu použitím názvu premenej.

#5 Re: Calc » Referencia na bunku v podmienenom formátovaní - "VYŘEŠENO" » 25. 5. 2020 13:51:45

neutr napsal(a)

Ano tohle jsem si myslel. Ale uvádím ještě...

Už to mám vyjasnené. Ďakujem za info.

#6 Re: Calc » Referencia na bunku v podmienenom formátovaní - "VYŘEŠENO" » 25. 5. 2020 12:45:05

Sorry. Zbytočne som to pre-komplikoval, riešenie je pritom jednoduché.
Teraz som zistil, že keď pravidlo zmením na:
AND(B1=1;$A1:$A3="utorok")
Tak to plní rovnakú funkciu. Takže sa zdá, že ak v podmienke formátovania uvediem B1 (začiatok rozsahu), tak sa následne pre každú bunku táto referencia zmení na aktuálnu bunku.

#7 Re: Calc » Referencia na bunku v podmienenom formátovaní - "VYŘEŠENO" » 25. 5. 2020 12:09:39

Neviem či sme sa navzájom pochopili :-) Ukážem príklad problému:
Mám takúto tabuľku: https://drive.google.com/open?id=1ajF07 … sVuLulZgoM
Je tam použité pravidlo podmieneného formátovania, ktoré upraví štýl tých buniek v rozsahu B1:E3. Pravidlo upraví len tie bunky, ktoré sú v riadku pre "utorok" a zároveň buňka obsahuje číslo 1.
Použité pravidlo:
AND(INDIRECT(SUBSTITUTE(ADDRESS(1;COLUMN();4);1;"")&ROW())=1;$A1:$A3="utorok")
Zaujímalo by ma, či je možné zjednodušiť v tomto pravidle tú zelenú časť, ktorá odkazuje na aktuálnu bunku.

#8 Calc » Referencia na bunku v podmienenom formátovaní - "VYŘEŠENO" » 24. 5. 2020 11:22:33

hal_sk
Odpovědí: 5

Ahoj,
Doteraz som na aktuálnu bunku v podmienenom formátovaní odkazoval pomocou tohto ťažkopádneho konštruktu:
INDIRECT(SUBSTITUTE(ADDRESS(1;COLUMN();4);1;"")&ROW()
Existuje jednoduchší spôsob? Myslím, že v programe Excel existuje na toto elegantná funkcia "THIS_CELL"

Príklad použitia:
Aplikovať štýl na bunku v rozsahu, ak bude bunka spĺňať viacero podmienok naraz.

Zápatí

Používáme FluxBB