Annidamento delle istruzioni If e Or


1

Sto cercando di annidare diverse colonne in un'istruzione If che utilizza entrambe le funzioni And e Or. Finora non riesco a trovare una funzione che funzioni.

Regole:

  • Se Act Conf Anni O Act Conf Mesi> 0, viene visualizzato "Confinement"
  • Se Act Prob anni OPPURE Act Prob Mesi> 0, quindi emettere "Probation"
  • If (Act Conf Years OR Act Conf Month> 0) AND (Act Prob anni OR Act Prob Month> 0) quindi visualizza "Both"

La formula che mi è venuta in mente è stata:

IF(OR(D3>0,E3>0),"Confinement",IF(OR(G3>0,H3>0),"Probation",IF(OR(D3>0,E3>0,AND(G3>0,H3>0),"Both"))

Tuttavia, ciò non funziona. So che il problema è da qualche parte nella parte dopo "Probation". Ma non sono sicuro di come impilare correttamente le funzioni OR ed AND.

In alternativa, è possibile farlo in qualche modo con Power Query, Power Pivot o altri componenti aggiuntivi?


IF(OR(D3>0,E3>0),"Confinement",IF(OR(G3>0,H3>0),"Probation",IF(And(OR(D3>0,E3>0),OR(G3>0,H3>0)),"Both"))? Penso che il problema sia la tua ultima affermazione - tu lo fai Or(And)e dovrebbe essere And(or(),or())penso.
BruceWayne,

È possibile che il record non mostri alcun isolamento e nessuna libertà vigilata? In caso contrario, è possibile semplificare questo a due IF.
Eccellente il

Ho provato a usare E con n annidati all'interno e Excel non lo ha ancora elaborato. Semplificare la formula come indicato da @Excellll ha funzionato perfettamente!
JackOfTales

Risposte:


0

Se "Né Confinement né Probation" è impossibile nei tuoi dati, puoi utilizzare una formula più semplice.

=IF(D3+E3>0,IF(G3+H3>0,"Both","Confinement"),"Probation")

Se è possibile che il record non mostri né confinamento né libertà vigilata, è possibile utilizzare questa formula:

=IF(D3+E3>0,IF(G3+H3>0,"Both","Confinement"),IF(G3+H3>0,"Probation","Neither"))

Per qualsiasi motivo, nessuna delle altre due risposte sovrappone le funzioni AND e OR funziona. Non so se è il mio eccellente o qualcos'altro. Tuttavia, la tua seconda opzione funziona perfettamente. Né è sicuramente un risultato (poiché alcune delle righe non sono state condannate, quindi non sono condannate a nulla o vengono inviate a un programma di deviazione o qualcos'altro ... quasi non importa, hanno solo bisogno di Confined, Probation o entrambi! ). Quindi grazie!
JackOfTales

1

La terza condizione ("Entrambi") contiene due istruzioni OR (e un AND). La tua formula non includeva il secondo OR.

Tu vuoi AND( OR (), OR() )

Prima:

IF(OR(D3>0,E3>0),"Confinement",
IF(OR(G3>0,H3>0),"Probation",
IF(OR(D3>0,E3>0,AND(G3>0,H3>0),"Both"))

Dopo:

IF(OR(D3>0,E3>0),"Confinement",
IF(OR(G3>0,H3>0),"Probation",
IF(AND(OR(D3>0,E3>0),OR(G3>0,H3>0)),"Both")))

0

Versione alternativa, senza AND

IF(OR(D3>0, E3>0), IF(OR(G3>0, H3>0), "Both", "Confinement"),
   IF(OR(G3>0, H3>0), "Probation", ))

La logica è:

  • If Conf, (If Prob (anche), quindi "Both", altrimenti è solo "Confinement"),
  • Se Prob, quindi "Probation", ( opzionale : else "None")

Dove Conf è (Act Conf Anni> 0 OR Act Conf Mesi> 0) Prob is (Act Prob Anni> 0 OR Act Prob Mesi> 0)

Puoi renderlo più semplice sostituendo la ORparte con la variabile temporanea Conf e Prob (sì, anche l'algebra funziona in logica)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.