Funzione SE

Discussioni sull'applicazione per i fogli di calcolo
incodemy
Messaggi: 44
Iscritto il: sabato 18 febbraio 2023, 17:24

Funzione SE

Messaggio da incodemy »

Ecco cosa sto cercando di fare da una settimana:

Funzione
SE cella B2 < 700 E cella A2 = "codice1";"codice2";"codice3" allora risultato 40% altrimenti mostra errore "mandante inesistente"

SE cella B2 >= 700 E cella A2 = "codice1";"codice2";"codice3" allora risultato 40%
SE cella B2 >= 700 E cella A2 = "codice4";"codice5";"codice6" allora risultato 20%
SE cella B2 >= 700 E cella A2 = "codice7";"codice8";"codice9" allora risultato 60%
altrimenti mostra errore "mandante inesistente"

Io l'ho fatta così, ma non funziona:

Codice: Seleziona tutto

=più.SE(B2<700;SE(E(A2={"B01";"B02";"B03";"B04";"B05";"B07";"B08";"B09";"B10";"B11";"B12";"B13";"B14";"B15";"B16";"B17";"B18";"B19";"C05";"C06";"C07";"C08";"C09";"C11";"C12";"C13";"C14";"C17";"C18";"C19";"C20";"C21";"C22";"C25";"C26";"C27";"C28";"C29";"C30";"C31";"C34";"C35";"C36";"C37";"C38";"C51";"C54";"C55";"C56";"C63";"C66";"C67";"C70";"C71";"C74";"C75";"C76";"C77";"C78";"C79";"C80";"C81";"C82";"C83";"C84";"C85";"C86";"C87";"C95";"C96";"D20";"D21";"D22";"D23";"D24";"D25";"C01";"C02";"C03";"C04";"C10";"C15";"C16";"C23";"C24";"C39";"C40";"C41";"C42";"C43";"C44";"C45";"C46";"C47";"C48";"C49";"C50";"C52";"C57";"C58";"C59";"C60";"C61";"C62";"C64";"C65";"C68";"C69";"C88";"C89";"C90";"C91";"C92";"C93";"C94";"D01";"D02";"D12";"D48";"D50";"D51";"D54";"D56";"D58";"D59";"D62";"D72"});40%;1;"mandante inesistente");

più.SE(B2>=700;SE(E(A2={"B01";"B02";"B03";"B04";"B05";"B07";"B08";"B09";"B10";"B11";"B12";"B13";"B14";"B15";"B16";"B17";"B18";"B19";"C05";"C06";"C07";"C08";"C09";"C11";"C12";"C13";"C14";"C17";"C18";"C19";"C20";"C21";"C22";"C25";"C26";"C27";"C28";"C29";"C30";"C31";"C34";"C35";"C36";"C37";"C38";"C51";"C54";"C55";"C56";"C63";"C66";"C67";"C70";"C71";"C74";"C75";"C76";"C77";"C78";"C79";"C80";"C81";"C82";"C83";"C84";"C85";"C86";"C87";"C95";"C96";"D20";"D21";"D22";"D23";"D24";"D25";});10%;O(A2="C01";"C02";"C03";"C04";"C10";"C15";"C16";"C23";"C24";"C39";"C40";"C41";"C42";});30%;O(A2="C43";"C44";"C45";"C46";"C47";"C48";"C49";"C50";"C52";"C57";"C58";"C59";"C60";"C61";"C62";"C64";"C65";"C68";"C69";"C88";"C89";"C90";"C91";"C92";"C93";"C94";"D01";"D02";"D12";"D48";"D50";"D51";"D54";"D56";"D58";"D59";"D62";"D72"});20%;1;"mandante inesistente")
ricevo errore 508
Ultima modifica di incodemy il domenica 26 febbraio 2023, 18:56, modificato 2 volte in totale.
LibreOffice 7.4.5.1 su Windows 10
Rafkus_pl
Messaggi: 52
Iscritto il: domenica 19 settembre 2021, 15:45

Re: Funzione SE

Messaggio da Rafkus_pl »

Ti chiedo, pensaci tu con la funzione CERCA.VERT. Come vedete, la funzione PIÙ.SE o SE diventa molto lunga e addirittura illeggibile a causa del numero di codici...
OpenOffice 4.1.6 / LibreOffice 7.1.6.2 (x64)/ Windows 10

Sto scrivendo con google traduttore mi scuso per eventuali errori.
incodemy
Messaggi: 44
Iscritto il: sabato 18 febbraio 2023, 17:24

Re: Funzione SE

Messaggio da incodemy »

ma non ricevo errore per la lunghezza della formula, quindi significa che è sbagliata una impostazione ma è possibile.
La funzione cerca.vert non posso usarla
LibreOffice 7.4.5.1 su Windows 10
Rafkus_pl
Messaggi: 52
Iscritto il: domenica 19 settembre 2021, 15:45

Re: Funzione SE

Messaggio da Rafkus_pl »

prova questo:

Codice: Seleziona tutto

=più.SE( E(B2<700; O(A2={})); 40%;
	B2<700; "mandante inesistente";
	O(A2={}); 40%;
	O(A2={}); 20%;
	O(A2={}); 60%;
	1;"mandante inesistente" )
Inserisci i valori appropriati tra parentesi {}

La tua formula potrebbe essere così:

Codice: Seleziona tutto

=più.SE(B2<700; SE(O(A2={});40%;"mandante inesistente");
	O(A2={});10%;
	O(A2={});30%;
	O(A2={});20%;
	1;"mandante inesistente")
Ultima modifica di Rafkus_pl il domenica 26 febbraio 2023, 18:42, modificato 1 volta in totale.
OpenOffice 4.1.6 / LibreOffice 7.1.6.2 (x64)/ Windows 10

Sto scrivendo con google traduttore mi scuso per eventuali errori.
incodemy
Messaggi: 44
Iscritto il: sabato 18 febbraio 2023, 17:24

Re: Funzione SE

Messaggio da incodemy »

So già che è sbagliata appena la vedo perché:
1) non ci sono entrambe le condizioni;
>=700
e <700
2) Se B2>=700 E (NO O) A2="B01"... allora 40%
LibreOffice 7.4.5.1 su Windows 10
incodemy
Messaggi: 44
Iscritto il: sabato 18 febbraio 2023, 17:24

Re: Funzione SE

Messaggio da incodemy »

non rinuncio, perché so che si può fare dal momento che la funzione è corretta per importi superiori e uguali a 700 ma è sbagliata per importi inferiori a 700, quindi devo solo capire come aggiungere la parte di "mandante inesistente" per gli importi inferiori a 700
LibreOffice 7.4.5.1 su Windows 10
Rafkus_pl
Messaggi: 52
Iscritto il: domenica 19 settembre 2021, 15:45

Re: Funzione SE

Messaggio da Rafkus_pl »

credimi la formula è/sarà corretta:
  1. prima condizione: se il numero in B2 < 700 e A2 ha il valore di qualche lista {}.
  2. se la condizione 1 è falsa, controllare la condizione 2: se il numero in B2 < 700
  3. Se la condizione 2 è falsa, quali numeri rimangono nella cella B2? Naturalmente, solo maggiore o uguale a 700 (o il testo è stato inserito lì). Quindi d'ora in poi dovrai solo controllare in quale elenco il valore in A2 conta su {40%},
  4. {20%},
  5. {60%}
  6. e l'ultima condizione: In A2 è stato inserito un codice inesistente
OpenOffice 4.1.6 / LibreOffice 7.1.6.2 (x64)/ Windows 10

Sto scrivendo con google traduttore mi scuso per eventuali errori.
incodemy
Messaggi: 44
Iscritto il: sabato 18 febbraio 2023, 17:24

Re: Funzione SE

Messaggio da incodemy »

Rafkus non riesco a capire. Ti chiedo umilmente scusa e grazie per la pazienza, ma sono stanchissimo. Sono 2 settimane che lavoro e faccio questo file di sabato e domenica. Non riesco più a concentrarmi. Saresti così gentile da aggiustare la formula che abbiamo fatto fino a questo momento e modificarla come pensi possa andare bene?

La formula originale è questa: tutto ok se importi superiori o uguali a 700, sbagliata se importi inferiori a 700

Codice: Seleziona tutto

=PIÙ.SE(B2<700;40%;O(A2={"B01";"B02";"B03";"B04";"B05";"B07";"B08";"B09";"B10";"B11";"B12";"B13";"B14";"B15";"B16";"B17";"B18";"B19";"C05";"C06";"C07";"C08";"C09";"C11";"C12";"C13";"C14";"C17";"C18";"C19";"C20";"C21";"C22";"C25";"C26";"C27";"C28";"C29";"C30";"C31";"C34";"C35";"C36";"C37";"C38";"C51";"C54";"C55";"C56";"C63";"C66";"C67";"C70";"C71";"C74";"C75";"C76";"C77";"C78";"C79";"C80";"C81";"C82";"C83";"C84";"C85";"C86";"C87";"C95";"C96";"D20";"D21";"D22";"D23";"D24";"D25";});10%;O(A2={"C01";"C02";"C03";"C04";"C10";"C15";"C16";"C23";"C24";"C39";"C40";"C41";"C42";});30%;O(A2={"C43";"C44";"C45";"C46";"C47";"C48";"C49";"C50";"C52";"C57";"C58";"C59";"C60";"C61";"C62";"C64";"C65";"C68";"C69";"C88";"C89";"C90";"C91";"C92";"C93";"C94";"D01";"D02";"D12";"D48";"D50";"D51";"D54";"D56";"D58";"D59";"D62";"D72"});20%;1;"mandante inesistente")
La spiegazione che hai fatto non l'ho capita. Non capisco perché non si possa fare le formule senza incrociare le condizioni ma scriverle passo passo come un qualunque essere umano ragionerebbe
Ultima modifica di incodemy il domenica 26 febbraio 2023, 19:32, modificato 1 volta in totale.
LibreOffice 7.4.5.1 su Windows 10
incodemy
Messaggi: 44
Iscritto il: sabato 18 febbraio 2023, 17:24

Re: Funzione SE

Messaggio da incodemy »

Sono troppo stanco e non riesco a capire cosa mi hai scritto
LibreOffice 7.4.5.1 su Windows 10
incodemy
Messaggi: 44
Iscritto il: sabato 18 febbraio 2023, 17:24

Re: Funzione SE

Messaggio da incodemy »

Rafkus_pl ha scritto: domenica 26 febbraio 2023, 18:17 prova questo:

Codice: Seleziona tutto

=più.SE( E(B2<700; O(A2={})); 40%;
	B2<700; "mandante inesistente";
	O(A2={}); 40%;
	O(A2={}); 20%;
	O(A2={}); 60%;
	1;"mandante inesistente" )
Inserisci i valori appropriati tra parentesi {}

La tua formula potrebbe essere così:

Codice: Seleziona tutto

=più.SE(B2<700; SE(O(A2={});40%;"mandante inesistente");
	O(A2={});10%;
	O(A2={});30%;
	O(A2={});20%;
	1;"mandante inesistente")
quali delle 2. Sono diverse. Per testare una formula devo perdere un sacco di tempo, per inserire tutti i codici
LibreOffice 7.4.5.1 su Windows 10
Rafkus_pl
Messaggi: 52
Iscritto il: domenica 19 settembre 2021, 15:45

Re: Funzione SE

Messaggio da Rafkus_pl »

Entrambe le forme sono quasi equivalenti. Differiscono solo nei valori percentuali.

Codice: Seleziona tutto

=più.SE(
	E(B2<700; O(A2={"B01";"B02";"B03";"B04";"B05";"B07";"B08";"B09";"B10";"B11";"B12";"B13";"B14";"B15";"B16";"B17";"B18";"B19";"C05";"C06";"C07";"C08";"C09";"C11";"C12";"C13";"C14";"C17";"C18";"C19";"C20";"C21";"C22";"C25";"C26";"C27";"C28";"C29";"C30";"C31";"C34";"C35";"C36";"C37";"C38";"C51";"C54";"C55";"C56";"C63";"C66";"C67";"C70";"C71";"C74";"C75";"C76";"C77";"C78";"C79";"C80";"C81";"C82";"C83";"C84";"C85";"C86";"C87";"C95";"C96";"D20";"D21";"D22";"D23";"D24";"D25";"C01";"C02";"C03";"C04";"C10";"C15";"C16";"C23";"C24";"C39";"C40";"C41";"C42";"C43";"C44";"C45";"C46";"C47";"C48";"C49";"C50";"C52";"C57";"C58";"C59";"C60";"C61";"C62";"C64";"C65";"C68";"C69";"C88";"C89";"C90";"C91";"C92";"C93";"C94";"D01";"D02";"D12";"D48";"D50";"D51";"D54";"D56";"D58";"D59";"D62";"D72"})); 40%;
	B2<700; "mandante inesistente";
	O(A2={"B01";"B02";"B03";"B04";"B05";"B07";"B08";"B09";"B10";"B11";"B12";"B13";"B14";"B15";"B16";"B17";"B18";"B19";"C05";"C06";"C07";"C08";"C09";"C11";"C12";"C13";"C14";"C17";"C18";"C19";"C20";"C21";"C22";"C25";"C26";"C27";"C28";"C29";"C30";"C31";"C34";"C35";"C36";"C37";"C38";"C51";"C54";"C55";"C56";"C63";"C66";"C67";"C70";"C71";"C74";"C75";"C76";"C77";"C78";"C79";"C80";"C81";"C82";"C83";"C84";"C85";"C86";"C87";"C95";"C96";"D20";"D21";"D22";"D23";"D24";"D25"}); 40%;
	O(A2={"C01";"C02";"C03";"C04";"C10";"C15";"C16";"C23";"C24";"C39";"C40";"C41";"C42"}); 20%;
	O(A2={"C43";"C44";"C45";"C46";"C47";"C48";"C49";"C50";"C52";"C57";"C58";"C59";"C60";"C61";"C62";"C64";"C65";"C68";"C69";"C88";"C89";"C90";"C91";"C92";"C93";"C94";"D01";"D02";"D12";"D48";"D50";"D51";"D54";"D56";"D58";"D59";"D62";"D72"}); 60%;
	1;"mandante inesistente" )

Codice: Seleziona tutto

=più.SE(B2<700; SE(O(A2={"B01";"B02";"B03";"B04";"B05";"B07";"B08";"B09";"B10";"B11";"B12";"B13";"B14";"B15";"B16";"B17";"B18";"B19";"C05";"C06";"C07";"C08";"C09";"C11";"C12";"C13";"C14";"C17";"C18";"C19";"C20";"C21";"C22";"C25";"C26";"C27";"C28";"C29";"C30";"C31";"C34";"C35";"C36";"C37";"C38";"C51";"C54";"C55";"C56";"C63";"C66";"C67";"C70";"C71";"C74";"C75";"C76";"C77";"C78";"C79";"C80";"C81";"C82";"C83";"C84";"C85";"C86";"C87";"C95";"C96";"D20";"D21";"D22";"D23";"D24";"D25";"C01";"C02";"C03";"C04";"C10";"C15";"C16";"C23";"C24";"C39";"C40";"C41";"C42";"C43";"C44";"C45";"C46";"C47";"C48";"C49";"C50";"C52";"C57";"C58";"C59";"C60";"C61";"C62";"C64";"C65";"C68";"C69";"C88";"C89";"C90";"C91";"C92";"C93";"C94";"D01";"D02";"D12";"D48";"D50";"D51";"D54";"D56";"D58";"D59";"D62";"D72"});40%;"mandante inesistente");
	O(A2={"B01";"B02";"B03";"B04";"B05";"B07";"B08";"B09";"B10";"B11";"B12";"B13";"B14";"B15";"B16";"B17";"B18";"B19";"C05";"C06";"C07";"C08";"C09";"C11";"C12";"C13";"C14";"C17";"C18";"C19";"C20";"C21";"C22";"C25";"C26";"C27";"C28";"C29";"C30";"C31";"C34";"C35";"C36";"C37";"C38";"C51";"C54";"C55";"C56";"C63";"C66";"C67";"C70";"C71";"C74";"C75";"C76";"C77";"C78";"C79";"C80";"C81";"C82";"C83";"C84";"C85";"C86";"C87";"C95";"C96";"D20";"D21";"D22";"D23";"D24";"D25"});10%;
	O(A2={"C01";"C02";"C03";"C04";"C10";"C15";"C16";"C23";"C24";"C39";"C40";"C41";"C42"});30%;
	O(A2={"C43";"C44";"C45";"C46";"C47";"C48";"C49";"C50";"C52";"C57";"C58";"C59";"C60";"C61";"C62";"C64";"C65";"C68";"C69";"C88";"C89";"C90";"C91";"C92";"C93";"C94";"D01";"D02";"D12";"D48";"D50";"D51";"D54";"D56";"D58";"D59";"D62";"D72"});20%;
	1;"mandante inesistente")
Allegati
Database con calc(5bis).ods
File corretto, funzione CERCA.VERT corretta
(12.21 KiB) Scaricato 35 volte
Ultima modifica di Rafkus_pl il lunedì 27 febbraio 2023, 9:39, modificato 1 volta in totale.
OpenOffice 4.1.6 / LibreOffice 7.1.6.2 (x64)/ Windows 10

Sto scrivendo con google traduttore mi scuso per eventuali errori.
incodemy
Messaggi: 44
Iscritto il: sabato 18 febbraio 2023, 17:24

Re: Funzione SE

Messaggio da incodemy »

Rafkus_pl ha scritto: domenica 26 febbraio 2023, 19:04 credimi la formula è/sarà corretta:
  1. prima condizione: se il numero in B2 < 700 e A2 ha il valore di qualche lista {}.
  2. se la condizione 1 è falsa, controllare la condizione 2: se il numero in B2 < 700
  3. Se la condizione 2 è falsa, quali numeri rimangono nella cella B2? Naturalmente, solo maggiore o uguale a 700 (o il testo è stato inserito lì). Quindi d'ora in poi dovrai solo controllare in quale elenco il valore in A2 conta su {40%},
  4. {20%},
  5. {60%}
  6. e l'ultima condizione: In A2 è stato inserito un codice inesistente
Non capisco. Come puoi dire di aver definito una condizione unica (B2 < 700 e A2 ha il valore di qualche lista {}) se metti SE(O(A2. La lettera o definisce un'alternativa e quindi non definisce 2 condizioni che devono essere vere entrambe nello stesso momento. Di conseguenza il discorso se la condizione 1 è falsa e se la condizione 2 è falsa non ha senso
LibreOffice 7.4.5.1 su Windows 10
Rafkus_pl
Messaggi: 52
Iscritto il: domenica 19 settembre 2021, 15:45

Re: Funzione SE

Messaggio da Rafkus_pl »

scusa, non so spiegarti meglio
OpenOffice 4.1.6 / LibreOffice 7.1.6.2 (x64)/ Windows 10

Sto scrivendo con google traduttore mi scuso per eventuali errori.
incodemy
Messaggi: 44
Iscritto il: sabato 18 febbraio 2023, 17:24

Re: Funzione SE

Messaggio da incodemy »

mio padre diceva sempre che se non lo sai spiegare significa che non lo sai..
LibreOffice 7.4.5.1 su Windows 10
incodemy
Messaggi: 44
Iscritto il: sabato 18 febbraio 2023, 17:24

Re: Funzione SE

Messaggio da incodemy »

anche se non l'ho capita, ho provato a seguire questa formula che mi hai dato:
=più.SE(B2<700; SE(O(A2={});40%;"mandante inesistente");
O(A2={});10%;
O(A2={});30%;
O(A2={});20%;
1;"mandante inesistente")
e funziona! Mi sbagliavo. Grazie davvero, però adesso devo sistemare anche le altre formule che avevo ricevuto qui e che generano sempre lo stesso errore: B2<700 e A2 valore/codice inesistente non genera l'errore "mandante inesistente".

La formula che devo fare è questa:

Codice: Seleziona tutto

=più.SE(B2<700; SE(O(A2<=734;A2>=735;A2<=811;A2>=812;A2<=813;A2>=814;A2<=858;A2=859;A2>=860;A2<=868;A2>=870;A2<=877;A2="A32";A2="A33";A2="A34";A2="A35";A2="A36";A2="A37";A2="A38";A2="A39";A2="A40";A2="A41";A2="A42";A2="A43";A2="ADR";A2="AHE";A2="AHS";A2="AHV";A2="CE2";A2="DAC";A2="EBI";A2="IHM";A2="PE2";A2="PW2";A2="TIT";A2="UNI";A2="UNV";A2="VNS";A2="WH2";A2="WIH");40%;"mandante inesistente");O(A2<=734;A2>=812;A2<=813;A2="A32";A2="A33";A2="A34";A2="A35";A2="A36";A2="A37";A2="A38";A2="A39";A2="A40";A2="A41";A2="A42";A2="A43";A2="ADR";A2="AHE";A2="AHS";A2="AHV";A2="CE2";A2="DAC";A2="EBI";A2="PE2";A2="PW2";A2="UNI";A2="UNV";A2="VNS");40%;O(A2>=735;A2<=811;A2>=814;A2<=858;A2>=860;A2<=868;A2="IHM";A2="WH2";A2="WIH");30%;O(A2=859;A2>=870;A2<=877;A2="TIT");20%;1;"mandante inesistente")
Come vedi ci sono A2> o < di numeri ma anche codici, per esempio "TIT". Non riesco a capire dove devo mettere le {}. Saresti così gentile da dirmelo?
LibreOffice 7.4.5.1 su Windows 10
Rafkus_pl
Messaggi: 52
Iscritto il: domenica 19 settembre 2021, 15:45

Re: Funzione SE

Messaggio da Rafkus_pl »

non capisco questa notazione:

Codice: Seleziona tutto

O(A2=859;A2>=870;A2<=877)
O.png
O.png (11.43 KiB) Visto 1721 volte
Le celle vuote sono FALSE. Come puoi vedere nell'immagine, invece di controllare se A2=859 o A2>=870 o A2<=877, controlla solo se c'è un numero nella cella A2. A meno che tu non voglia controllare se c'è un valore in A2 all'interno di un certo intervallo:

Codice: Seleziona tutto

O(A2=859;E(A2>=870;A2<=877))
OpenOffice 4.1.6 / LibreOffice 7.1.6.2 (x64)/ Windows 10

Sto scrivendo con google traduttore mi scuso per eventuali errori.
incodemy
Messaggi: 44
Iscritto il: sabato 18 febbraio 2023, 17:24

Re: Funzione SE

Messaggio da incodemy »

Esatto. Ho bisogno di definire A2 come range, ad esempio >=870 e <=877 ma controllare anche se in A2 c'è un codice per esempio "TIT". Questi controlli devono essere fatti sia per B2 <700€ sia B2 >=700€. I numeri o i codici non presenti devono generare sempre "mandante inesistente". Spero di essermi riuscito a spiegare
LibreOffice 7.4.5.1 su Windows 10
incodemy
Messaggi: 44
Iscritto il: sabato 18 febbraio 2023, 17:24

Re: Funzione SE

Messaggio da incodemy »

Adesso qui è mezzanotte e sto per andare a dormire. Domani dopo il lavoro se non sono troppo stanco provo a fare dei test e scrivo qui la formula a cui ho pensato. L'ho già iniziata ma ero troppo stanco per finirla
LibreOffice 7.4.5.1 su Windows 10
incodemy
Messaggi: 44
Iscritto il: sabato 18 febbraio 2023, 17:24

Re: Funzione SE

Messaggio da incodemy »

Ti ringrazio davvero tanto per l'aiuto che mi stai dando. Lavoro 12 ore al giorno e quando ho finito mi metto a ragionare sulle formule. Sono 2 settimane che non mi riposo neanche i week end. Sveglio alle 7 e a studiare formule fino alle 23. Devo riuscire a fare questo file. È troppo importante
LibreOffice 7.4.5.1 su Windows 10
incodemy
Messaggi: 44
Iscritto il: sabato 18 febbraio 2023, 17:24

Re: Funzione SE

Messaggio da incodemy »

Sono sveglio dalle 7 di mattina e ho pensato che la formula doveva essere così, ma ricevo errore 508. Eppure ho controllato le parentesi. Cosa sto sbagliando?

Codice: Seleziona tutto

=più.SE(B2<700; SE(O(A2<=737); SE(O(A2>=739); SE(O(A2<=758); SE(O(A2>=763);
SE(O(A2<=786); SE(O(A2>=788); SE(O(A2<=821); SE(O(A2>=828); SE(O(A2<=848);
SE(O(A2>=850); SE(O(A2<=863); SE(O(A2>=866); SE(O(A2<=868); SE(O(A2>=870);
SE(O(A2<=877); SE(O(A2={"A32";"A33";"A34";"A35";"A36";"A37";"A38";"A39";"A40";
"A41";"A42";"A43";"ADR";"AHE";"AHS";"AHV";"CE2";"DAC";"EBI";"IHM";"PE2";"PW2";
"TIT";"UNI";"UNV";"VNS";"WH2";"WIH"});40%;"mandante inesistente");


O(A2<=734);40%;O(A2>=812;A2<=813);40%;O(A2={"A32";"A33";"A34";"A35";"A36";"A37";"A38";"A39";"A40";
"A41";"A42";"A43";"ADR";"AHE";"AHS";"AHV";"CE2";"DAC";"EBI"});40%;O(A2={"PE2";"PW2"});40%;O(A2={"UNI";"UNV";"VNS"});40%;

O(A2>=735;A2<=737);30%;O(A2>=739;A2<=758);30%;O(A2>=763;A2<=786);30%;O(A2>=788;A2<=811);30%;O(A2>=814;A2<=821);30%;
O(A2>=828;A2<=848);30%;O(A2>=850;A2<=858);30%;O(A2>=860;A2<=863);30%;O(A2>=866;A2<=868);30%;O(A2="IHM");30%;O(A2={"WH2";"WIH"});30%;

O(A2=859);20%;O(A2>=870;A2<=877);20%;O(A2="TIT");20%;"mandante inesistente")
LibreOffice 7.4.5.1 su Windows 10
Rafkus_pl
Messaggi: 52
Iscritto il: domenica 19 settembre 2021, 15:45

Re: Funzione SE

Messaggio da Rafkus_pl »

Non capisco la tua formula, non so cosa vuoi ottenere.
Piuse2.png
Piuse2.png (74.72 KiB) Visto 1696 volte
Indicatore verde: stai eseguendo una funzione SE e ognuna è infinita.
Indicatore giallo: stai utilizzando la funzione O() inutilmente per l'equazione. Invece di scrivere O(A2<=737) sarebbe sufficiente A2<=737.
Puntatore blu: se vuoi controllare qui O(A2>=735; A2<=737) se A2 è compreso tra 735 e 737 dovresti usare la funzione E(A2>=735; A2<=737)
OpenOffice 4.1.6 / LibreOffice 7.1.6.2 (x64)/ Windows 10

Sto scrivendo con google traduttore mi scuso per eventuali errori.
incodemy
Messaggi: 44
Iscritto il: sabato 18 febbraio 2023, 17:24

Re: Funzione SE

Messaggio da incodemy »

Adesso sono al lavoro quindi potrò controllare bene solo stasera.
Ad ogni modo, quello che voglio ottenere è questo.
Riprendo la formula:

CASO 1: Se B2<700 possono verificarsi i seguenti casi:
La cella A2 è un numero compreso tra zero e 737.
Se entrambe le condizioni sono vere il risultato deve essere 40%
Se B2<700 ma la cella A2 è un numero diverso da >0 e <=737 il risultato deve essere "mandante inesistente"

CASO 2: Se B2<700 possono verificarsi i seguenti casi:
La cella A2 è un codice alfanumerico, ad esempio "A32"
Se ENTRAMBE le condizioni sono vere il risultato deve essere 40%
Se B2<700 ma la cella A2 è un codice alfanumerico diverso da "A32" il risultato deve essere "mandante inesistente"

Stessa procedura quindi anche per B2>=700

Spero di essermi spiegato. Grazie ancora per l'aiuto. Sei un angelo
LibreOffice 7.4.5.1 su Windows 10
Rafkus_pl
Messaggi: 52
Iscritto il: domenica 19 settembre 2021, 15:45

Re: Funzione SE

Messaggio da Rafkus_pl »

Codice: Seleziona tutto

=più.SE(
	B2<700; SE(O(A2<732; A2={"B01";"B02"}); 40%; "mandante inesistente");
	O(A2<732; A2={"B01";...;"B02"}); 10%;
	1;"mandante inesistente")
La funzione PIU.SE verifica la prima condizione:
Se B2 < 700, la funzione SE deciderà sul risultato visualizzato. Se A2<737 o in A2 è presente qualsiasi valore dall'elenco {} otterrai il 40%, altrimenti "mandante inesistente"
Se B2 >= 700 verrà verificata la condizione successiva della funzione PIU.SE
OpenOffice 4.1.6 / LibreOffice 7.1.6.2 (x64)/ Windows 10

Sto scrivendo con google traduttore mi scuso per eventuali errori.
incodemy
Messaggi: 44
Iscritto il: sabato 18 febbraio 2023, 17:24

Re: Funzione SE

Messaggio da incodemy »

ok ti ringrazio di cuore. Mi sono fermato 5 minuti dal lavoro solo per risponderti. Adesso devo tornare al lavoro e proverò a fare come mi hai detto domenica perché sto lavorando 12 ore al giorno e di sera sono troppo stanco. Grazie ancora
LibreOffice 7.4.5.1 su Windows 10
incodemy
Messaggi: 44
Iscritto il: sabato 18 febbraio 2023, 17:24

Re: Funzione SE

Messaggio da incodemy »

Fatto questa formula come mi hai detto, non funziona.

Tuo codice:

Codice: Seleziona tutto

=più.SE(
	B2<700; SE(O(A2<732; A2={"B01";"B02"}); 40%; "mandante inesistente");
	O(A2<732; A2={"B01";...;"B02"}); 10%;
	1;"mandante inesistente")
Mio codice:

Codice: Seleziona tutto

=più.SE(B2<700; SE(O(A2<=737; A2>=739; A2<=758; A2>=763; A2<=786; A2>=788; A2<=821;
A2>=828; A2<=848; A2>=850; A2<=863; A2>=866; A2<=868; A2>=870; A2<=877;
A2={"A32";"A33";"A34";"A35";"A36";"A37";"A38";"A39";"A40";"A41";"A42";"A43";"ADR";
"AHE";"AHS";"AHV";"CE2";"DAC";"EBI";"IHM";"PE2";"PW2";"TIT";"UNI";"UNV";"VNS";
"WH2";"WIH"}); 40%; "mandante inesistente");

O(A2<=734; A2>=812; A2<=813; A2={"A32";"A33";"A34";"A35";"A36";"A37";"A38";"A39";
"A40";"A41";"A42";"A43";"ADR";"AHE";"AHS";"AHV";"CE2";"DAC";"EBI";"PE2";"PW2";
"UNI";"UNV";"VNS"}); 40%;

O(A2>=735; A2<=737; A2>=739; A2<=758; A2>=763; A2<=786; A2>=788; A2<=811; A2>=814;
A2<=821; A2>=828; A2<=848; A2>=850; A2<=858; A2>=860; A2<=863; A2>=866; A2<=868;
A2={"IHM";"WH2";"WIH"}); 30%;

O(A2=859; A2>=870; A2<=877; A2={"TIT"}); 20%;1;"mandante inesistente")
se metto in B2 600 e in A2 AAA (che è un codice inesistrente) non esce l'errore "mandante inesistente".
E ho anche verificato che mentre prima se B2 era maggiore di 700 ma il codice inserito era inesistente, usciva correttamente l'errore "mandante inesistente", adesso non esce l'errore anche se B2 è maggiore di 700
LibreOffice 7.4.5.1 su Windows 10
incodemy
Messaggi: 44
Iscritto il: sabato 18 febbraio 2023, 17:24

Re: Funzione SE

Messaggio da incodemy »

Screenshot - EF - CF mandati DA FARE EF.ods - LibreOffice Calc.png
Screenshot - EF - CF mandati DA FARE EF.ods - LibreOffice Calc.png (38.93 KiB) Visto 1639 volte
LibreOffice 7.4.5.1 su Windows 10
Rafkus_pl
Messaggi: 52
Iscritto il: domenica 19 settembre 2021, 15:45

Re: Funzione SE

Messaggio da Rafkus_pl »

Non credo che mi ascolti:
Rafkus_pl ha scritto: lunedì 27 febbraio 2023, 23:40 non capisco questa notazione:

Codice: Seleziona tutto

O(A2=859;A2>=870;A2<=877)
O.png (11.43 KiB) Przejrzano 88 razy
Le celle vuote sono FALSE. Come puoi vedere nell'immagine, invece di controllare se A2=859 o A2>=870 o A2<=877, controlla solo se c'è un numero nella cella A2. A meno che tu non voglia controllare se c'è un valore in A2 all'interno di un certo intervallo:

Codice: Seleziona tutto

O(A2=859;E(A2>=870;A2<=877))
In altre parole, il risultato della funzione o è contrassegnato sull'asse, sono aree verdi o punti marcati.
FunzioneO.png
FunzioneO.png (28.85 KiB) Visto 1633 volte
Penso che la tua formula dovrebbe apparire così:

Codice: Seleziona tutto

=più.SE(B2<700; SE(O(A2<=737; E(A2>=739; A2<=758); E(A2>=763; A2<=786); E(A2>=788; A2<=821);
E(A2>=828; A2<=848); E(A2>=850; A2<=863); E(A2>=866; A2<=868); E(A2>=870; A2<=877);
A2={"A32";"A33";"A34";"A35";"A36";"A37";"A38";"A39";"A40";"A41";"A42";"A43";"ADR";
"AHE";"AHS";"AHV";"CE2";"DAC";"EBI";"IHM";"PE2";"PW2";"TIT";"UNI";"UNV";"VNS";
"WH2";"WIH"}); 40%; "mandante inesistente");

O(A2<=734; E(A2>=812; A2<=813); A2={"A32";"A33";"A34";"A35";"A36";"A37";"A38";"A39";
"A40";"A41";"A42";"A43";"ADR";"AHE";"AHS";"AHV";"CE2";"DAC";"EBI";"PE2";"PW2";
"UNI";"UNV";"VNS"}); 40%;

O(A2>=735; A2<=737; E(A2>=739; A2<=758); E(A2>=763; A2<=786); E(A2>=788; A2<=811); E(A2>=814;
A2<=821); E(A2>=828; A2<=848); E(A2>=850; A2<=858); E(A2>=860; A2<=863); E(A2>=866; A2<=868);
A2={"IHM";"WH2";"WIH"}); 30%;

O(A2=859; E(A2>=870; A2<=877); A2={"TIT"}); 20%;
1;"mandante inesistente")
OpenOffice 4.1.6 / LibreOffice 7.1.6.2 (x64)/ Windows 10

Sto scrivendo con google traduttore mi scuso per eventuali errori.
incodemy
Messaggi: 44
Iscritto il: sabato 18 febbraio 2023, 17:24

Re: Funzione SE

Messaggio da incodemy »

Ho messo in allegato il file.
FOGLIO EF: Prova a mettere nella sezione gialla A2 il codice AAA (maiuscolo) che è un codice inesistente.
Poi metti nella sezione gialla B2 il valore 750.
In C2 la formula che mi hai dato dovrebbe restituire "mandante inesistente" e invece rimane una percentuale,
quindi è ancora sbagliata.
Allegati
EF - CF mandati DA FARE EF.ods
(14.51 KiB) Scaricato 30 volte
LibreOffice 7.4.5.1 su Windows 10
Rafkus_pl
Messaggi: 52
Iscritto il: domenica 19 settembre 2021, 15:45

Re: Funzione SE

Messaggio da Rafkus_pl »

è tutto a causa di questa condizione: A2>=735, qualsiasi testo è maggiore di un numero. Controlla qui contemporaneamente due condizioni: se c'è un numero in A2 e se è maggiore di 735, quindi:

Codice: Seleziona tutto

E(VAL.NUMERO(A2);A2>=735)
[/canc]
o ho dimenticato un intervallo :roll: :

Codice: Seleziona tutto

E(A2>=735; A2<=737)
formula rivista:

Codice: Seleziona tutto

=più.SE(B2<700; SE(O(A2<=737; E(A2>=739; A2<=758); E(A2>=763; A2<=786); E(A2>=788; A2<=821);
E(A2>=828; A2<=848); E(A2>=850; A2<=863); E(A2>=866; A2<=868); E(A2>=870; A2<=877);
A2={"A32";"A33";"A34";"A35";"A36";"A37";"A38";"A39";"A40";"A41";"A42";"A43";"ADR";
"AHE";"AHS";"AHV";"CE2";"DAC";"EBI";"IHM";"PE2";"PW2";"TIT";"UNI";"UNV";"VNS";
"WH2";"WIH"}); 40%; "mandante inesistente");

O(A2<=734; E(A2>=812; A2<=813); A2={"A32";"A33";"A34";"A35";"A36";"A37";"A38";"A39";
"A40";"A41";"A42";"A43";"ADR";"AHE";"AHS";"AHV";"CE2";"DAC";"EBI";"PE2";"PW2";
"UNI";"UNV";"VNS"}); 40%;

O(E(A2>=735; A2<=737); E(A2>=739; A2<=758); E(A2>=763; A2<=786); E(A2>=788; A2<=811); E(A2>=814;
A2<=821); E(A2>=828; A2<=848); E(A2>=850; A2<=858); E(A2>=860; A2<=863); E(A2>=866; A2<=868);
A2={"IHM";"WH2";"WIH"}); 30%;

O(A2=859; E(A2>=870; A2<=877); A2={"TIT"}); 20%;
1;"mandante inesistente")
OpenOffice 4.1.6 / LibreOffice 7.1.6.2 (x64)/ Windows 10

Sto scrivendo con google traduttore mi scuso per eventuali errori.
incodemy
Messaggi: 44
Iscritto il: sabato 18 febbraio 2023, 17:24

Re: Funzione SE

Messaggio da incodemy »

E' ancora sbagliata. Non vede i codici numerici mancanti come "mandante inesistente"
Esempio errore:
metto in B2 il valore 750
poi metto in A2 il codice 738 (738 è un codice numerico che non esiste)
il C2 rimane una percentuale.

Altro esempio di errore:
metto in B2 il valore 750
poi metto in A2 il codice 760 (760 è un codice numerico che non esiste)
il C2 rimane una percentuale.

Altro esempio di errore:
metto in B2 il valore 750
poi metto in A2 il codice 760 (760 è un codice che non esiste)
il C2 rimane una percentuale.

Altro esempio di errore:
metto in B2 il valore 750
poi metto in A2 il codice 871
il C2 dovrebbe risultare 20% e invece rimane 30% del test precedente.
LibreOffice 7.4.5.1 su Windows 10
Rispondi