Funzioni IF annidate

Collapse
X
 
  • Ora
  • Show
Clear All
new posts
  • TraderLoki
    Senior Member

    • Feb 2012
    • 388

    #1

    Funzioni IF annidate

    Ciao a tutti,

    Siccome sono noioso e non mi basta avere una colorazione diversa a seconda che la variazione percentuale sia superiore o inferiore allo zero
    ma mi piacerebbe avere anche altri due colori per variazioni maggiori o minori di +/- 3% ho provato con delle IF annidate. Finchè ne annido
    una sola, funziona:

    Codice:
    SET PLOTCOLOR1 = IF(VARIAZIONE >= 0, COLOR_DARK_GREEN, IF(VARIAZIONE <=-3.0, COLOR_BLACK, COLOR_RED))
    In effetti mi indica in verde il positivo, in rosso il negativo e in nero negativi sotto al 3%.

    Però se provo:

    Codice:
    SET PLOTCOLOR1 = IF(VARIAZIONE >= 3, COLOR_CYAN, IF(VARIAZIONE >0, COLOR_DARK_GREEN, IF(VARIAZIONE <=-3.0, COLOR_BLACK, COLOR_RED)))
    mi dice:

    Click image for larger version

Name:	Errore.png
Views:	1
Size:	71.5 KB
ID:	165750

    Ho provato anche mettendo una IF annidata sulla condizione TRUE e una sulla condizione FALSE (sempre tre IF quindi, ma distribuite diversamente) ma mi da lo stesso problema.
    E\' un problema di sintassi mia (leggendo l\'errore sotto però mi sembra che la sintassi sia corretta) oppure il limite di IF annidate è 2?

    Grazie mille!

    Loki
    -----------------------------------------------------------------
    Preferisco le urla della battaglia al silenzio che ne segue.
    -----------------------------------------------------------------
  • Andrea Cagalli
    Senior Member
    • Oct 2010
    • 3995

    #2
    Originariamente Scritto da TraderLoki
    Ciao a tutti,

    Siccome sono noioso e non mi basta avere una colorazione diversa a seconda che la variazione percentuale sia superiore o inferiore allo zero
    ma mi piacerebbe avere anche altri due colori per variazioni maggiori o minori di +/- 3% ho provato con delle IF annidate. Finchè ne annido
    una sola, funziona:

    Codice:
    SET PLOTCOLOR1 = IF(VARIAZIONE >= 0, COLOR_DARK_GREEN, IF(VARIAZIONE <=-3.0, COLOR_BLACK, COLOR_RED))
    In effetti mi indica in verde il positivo, in rosso il negativo e in nero negativi sotto al 3%.

    Però se provo:

    Codice:
    SET PLOTCOLOR1 = IF(VARIAZIONE >= 3, COLOR_CYAN, IF(VARIAZIONE >0, COLOR_DARK_GREEN, IF(VARIAZIONE <=-3.0, COLOR_BLACK, COLOR_RED)))
    mi dice:

    [ATTACH=CONFIG]21496[/ATTACH]

    Ho provato anche mettendo una IF annidata sulla condizione TRUE e una sulla condizione FALSE (sempre tre IF quindi, ma distribuite diversamente) ma mi da lo stesso problema.
    E\' un problema di sintassi mia (leggendo l\'errore sotto però mi sembra che la sintassi sia corretta) oppure il limite di IF annidate è 2?

    Grazie mille!

    Loki
    Ciao caro,
    puoi fare in tre righe:

    Codice:
    SET PLOTCOLOR1 = IF(VARIAZIONE <=-3.0, COLOR_BLACK, COLOR_RED)
    SET PLOTCOLOR1 = IF(VARIAZIONE >0, COLOR_DARK_GREEN, PLOTCOLOR1)
    SET PLOTCOLOR1 = IF(VARIAZIONE >= 3, COLOR_CYAN, PLOTCOLOR1)
    Ciao Ciao
    Manuale beeTrader

    Comment

    • TraderLoki
      Senior Member

      • Feb 2012
      • 388

      #3
      Originariamente Scritto da Andrea Cagalli
      Ciao caro,
      puoi fare in tre righe:

      Codice:
      SET PLOTCOLOR1 = IF(VARIAZIONE <=-3.0, COLOR_BLACK, COLOR_RED)
      SET PLOTCOLOR1 = IF(VARIAZIONE >0, COLOR_DARK_GREEN, PLOTCOLOR1)
      SET PLOTCOLOR1 = IF(VARIAZIONE >= 3, COLOR_CYAN, PLOTCOLOR1)
      Ciao Ciao
      Duh!
      Mi sono talmente incaponito sul cercare di capire il significato di quel messaggio di errore che non ho pensato ad un workaround ovvio

      Grazie mille, Andrea! Ogni tanto bisogna fare anche domande banali se no vi facciamo venire il mal di testa (eh già, è per quello che l\'ho fatta, già già... )

      Loki
      -----------------------------------------------------------------
      Preferisco le urla della battaglia al silenzio che ne segue.
      -----------------------------------------------------------------

      Comment

      Working...