La pubblicazione del "Quesito 14" avverrà:
martedì 17 maggio, alle ore 17:00
Saluti
r
> La pubblicazione del "Quesito 14" avverrà:
> martedì 17 maggio, alle ore 17:00
Ho dimenticato di dirlo, ma era sottointeso, il quesito verrà
publicato in questo stesso 3d.
A dopo
r
Oggi giochiamo a Tris!
Istruzioni:
Definiamo un nome "rng" che identifichi un generico intervallo di 3
righe per 3 colonne ad esempio:
=$E$5:$G$7
Si gioca a tris ... I due giocatori utilizzeranno per la loro mossa la
lettera "x" e la "o" (quindicesima lettera dell'alfabeto) non importa
se minuscola o minuscola. Si inizia con la "x" anche se ha poca
importanza ...
Il quesito ...
In una cella voglio una formula che nel caso di vittoria (non importa
di quale giocatore) restituisca "Hai vinto!" e viceversa in caso
contrario restituisca a vostra scelta "" oppure un valore di errore.
Per la vittoria (5 punti) è consentito l'utilizzo di una colonna di
appoggio ...
Per aggiudicarsi la formula breve (3 punti) viceversa si combatterà su
formula senza appoggio.
In bocca al lupo!
saluti
r
p.s.
a questa pagina:
https://sites.google.com/site/e90e50/documento-plinius/quizzone-di-excel/quesiti
trovate il file Quesito 14.xls ... è stato già definito il nome rng e
una convalida per scegliere "x" e "o"
> Per la vittoria (5 punti) è consentito l'utilizzo di una colonna di
> appoggio ...
specifico che per colonna di appoggio intendo una formula che può
essere trascinata fino a necessità, il range che la contiene può poi
essere utilizzato nella formula per raggiungere il risultato finale.
saluti
r
formula unica
moooooooooolto lunga ......
=SE(IDENTICO("xxx";CONCATENA(E8;F8;G8))
+IDENTICO("ooo";CONCATENA(E8;F8;G8))
+IDENTICO("xxx";CONCATENA(E9;F9;G9))
+IDENTICO("ooo";CONCATENA(E9;F9;G9))
+IDENTICO("xxx";CONCATENA(E10;F10;G10))
+IDENTICO("ooo";CONCATENA(E10;F10;G10))
+IDENTICO("xxx";CONCATENA(E8;E9;E10))
+IDENTICO("ooo";CONCATENA(E8;E9;E10))
+IDENTICO("xxx";CONCATENA(F8;F9;F10))
+IDENTICO("ooo";CONCATENA(F8;F9;F10))
+IDENTICO("xxx";CONCATENA(G8;G9;G10))
+IDENTICO("ooo";CONCATENA(G8;G9;G10))
+IDENTICO("xxx";CONCATENA(G8;F9;E10))
+IDENTICO("ooo";CONCATENA(G8;F9;E10))
+IDENTICO("xxx";CONCATENA(E8;F9;G10))
+IDENTICO("ooo";CONCATENA(E8;F9;G10))>0;"Hai vinto!";"")
non posso accettarla in quanto devi usare rng e non i riferimenti alle
celle ... deve essere una formula utilizzabile sempre.
ciao
r
mannaggia
su ... su ... i 5 punti non rimangono li in eterno ... al massimo un
paio di gironi :-)
saluti
r
in una cella di appoggio le combinazioni (diagonali comprese)
ad esempio in I8:
=(INDICE(rng;1;1)&INDICE(rng;1;2)&INDICE(rng;1;3)&","&INDICE(rng;
2;1)&INDICE(rng;2;2)&INDICE(rng;2;3)&","&INDICE(rng;3;1)&INDICE(rng;
3;2)&INDICE(rng;3;3)&","&INDICE(rng;1;1)&INDICE(rng;2;1)&INDICE(rng;
3;1)&","&INDICE(rng;1;2)&INDICE(rng;2;2)&INDICE(rng;
3;2)&","&INDICE(rng;1;3)&INDICE(rng;2;3)&INDICE(rng;
3;3)&","&INDICE(rng;1;1)&INDICE(rng;2;2)&INDICE(rng;
3;3)&","&INDICE(rng;1;3)&INDICE(rng;2;2)&INDICE(rng;3;1))
in E6; =SE(VAL.ERRORE(TROVA("ooo";I8));"";"Hai
vinto!")&SE(VAL.ERRORE(TROVA("xxx";I8));"";"Hai vinto!")
variazione:
dichiariamo il vincitore
in E6; =SE(VAL.ERRORE(TROVA("ooo";I8));"";"Vince
O")&SE(VAL.ERRORE(TROVA("xxx";I8));"";"Vince X")
che senza appoggio diventa:
=SE(VAL.ERRORE(TROVA("ooo";(INDICE(rng;1;1)&INDICE(rng;1;2)&INDICE(rng;
1;3)&","&INDICE(rng;2;1)&INDICE(rng;2;2)&INDICE(rng;
2;3)&","&INDICE(rng;3;1)&INDICE(rng;3;2)&INDICE(rng;
3;3)&","&INDICE(rng;1;1)&INDICE(rng;2;1)&INDICE(rng;
3;1)&","&INDICE(rng;1;2)&INDICE(rng;2;2)&INDICE(rng;
3;2)&","&INDICE(rng;1;3)&INDICE(rng;2;3)&INDICE(rng;
3;3)&","&INDICE(rng;1;1)&INDICE(rng;2;2)&INDICE(rng;
3;3)&","&INDICE(rng;1;3)&INDICE(rng;2;2)&INDICE(rng;3;1))));"";"Hai
vinto!")&SE(VAL.ERRORE(TROVA("xxx";(INDICE(rng;1;1)&INDICE(rng;
1;2)&INDICE(rng;1;3)&","&INDICE(rng;2;1)&INDICE(rng;2;2)&INDICE(rng;
2;3)&","&INDICE(rng;3;1)&INDICE(rng;3;2)&INDICE(rng;
3;3)&","&INDICE(rng;1;1)&INDICE(rng;2;1)&INDICE(rng;
3;1)&","&INDICE(rng;1;2)&INDICE(rng;2;2)&INDICE(rng;
3;2)&","&INDICE(rng;1;3)&INDICE(rng;2;3)&INDICE(rng;
3;3)&","&INDICE(rng;1;1)&INDICE(rng;2;2)&INDICE(rng;
3;3)&","&INDICE(rng;1;3)&INDICE(rng;2;2)&INDICE(rng;3;1))));"";"Hai
vinto!")
c'è sicuramente un modo meno indegno ma nella vita bisogna sapersi
accontentare
confermo, la formula fa quanto richiesto! a te i 5 punti!
c'è modo migliore?
direi che è di molto migliorabile ... intanto la tua può essere segata
a metà:
=SE(SOMMA(1-VAL.ERRORE(TROVA({"ooo"\"xxx"};(INDICE(rng;1;1)&INDICE(rng;
1;2)&INDICE(rng;
1;3)&","&INDICE(rng;2;1)&INDICE(rng;2;2)&INDICE(rng;
2;3)&","&INDICE(rng;3;1)&INDICE(rng;3;2)&INDICE(rng;
3;3)&","&INDICE(rng;1;1)&INDICE(rng;2;1)&INDICE(rng;
3;1)&","&INDICE(rng;1;2)&INDICE(rng;2;2)&INDICE(rng;
3;2)&","&INDICE(rng;1;3)&INDICE(rng;2;3)&INDICE(rng;
3;3)&","&INDICE(rng;1;1)&INDICE(rng;2;2)&INDICE(rng;
3;3)&","&INDICE(rng;1;3)&INDICE(rng;2;2)&INDICE(rng;3;1)))));"Hai
vinto!";"")
però ... c'è sicuramente una strada per raggiungere il risultato in
modo più breve ...
prova a dare uno sguardo alla potente MATR.PRODOTTO ... forse ti viene
l'ispirazione.
ciao
r
beh dai ... prima che posti il nuovo quesito aggiungo la mia per
concorrere ai 3 punti:
=SE(MAX(ASS(MATR.PRODOTTO((rng="x")-(rng="o");
{1\1\1}));ASS(MATR.PRODOTTO(MATR.TRASPOSTA((rng="x")-(rng="o"));
{1\1\1}));ASS(SOMMA(((rng="x")-
(rng="o"))*{1;0;0\0;1;0\0;0;1}));ASS(SOMMA(((rng="x")-
(rng="o"))*{0;0;1\0;1;0\1;0;0})))=3;"Hai vinto!";"")
da confermare con ctrl+maiusc+invio
in effetti la cosa più comoda sarebbe stata usare 1 e -1 al posto di x
e o ... ma questo ha chiesto r :-)
ciao
r
Ciao roby,
ma non avresti dovuto aspettare DUE GIORNI SOLARI prima di dare la tua
soluzione?
Non per niente, ma io non ho potuto postato la mia più breve con
SEGNO() (quiz del drugstore) lasciando i 3 punti (ma soprattutto la
soddisfazione di tagliarTI) proprio perché dovevo aspettare.
Nessun problema comunque, ma sarebbe meglio definire in modo preciso
almeno queste due regole.
Bye!
Scossa
hai ragione!
credo comunque si possa fare meglio ... anche per questo e per
stimolare la gara vedendo che la situazione era statica mi sono
permesso di postare la formula :-(
ho sbagliato a pensare che nessuno ci stesse lavorando! ... e dovevo
aspettare comunque domani!
vorrà dire che se nessuno la migliora (io compreso) ... non assegnerò
i 3 punti ... ma ripeto ... credo sia migliorabile
mi impegno a non fare più lo stesso errore e chiedo scusa.
Ciao
r
E perchè mai? se nessuno la migliora i 3 punti sono meritatamente
tuoi!
Certo che se qualcuno (a dir poco "poco sportivo") la copiasse pari
pari e la postasse come sua ... a termine di regolamento forse
potrebbe accampare diritto ai 3 punti.
> mi impegno a non fare più lo stesso errore e chiedo scusa.
Esagerato :-)
Io mi impegno ad accorciarla, ma dubito di riuscirci :-)
Bye!
Scossa
no, no ... i 3 punti li prendo se miglioro quando potrò migliorare ...
quel che è giusto è giusto ...
> Certo che se qualcuno (a dir poco "poco sportivo") la copiasse pari
> pari e la postasse come sua ... a termine di regolamento forse
> potrebbe accampare diritto ai 3 punti.
io l'avrei fatto :-)
>
> > mi impegno a non fare più lo stesso errore e chiedo scusa.
>
> Esagerato :-)
ho fatto anche 30 flessioni :-)
>
> Io mi impegno ad accorciarla, ma dubito di riuscirci :-)
in effetti ... ci sto provando ma ... senza esito ...
comunque ok ... proviamo ancora ... chissà che ci venga in mente
qualcosa
>
> Bye!
> Scossa
ciao
r
> in effetti ... ci sto provando ma ... senza esito ...
> comunque ok ... proviamo ancora ... chissà che ci venga in mente
> qualcosa
eh eh ... a me una cosetta è venuta in mente ... quando posso
postare?
non dire nulla! lo so ho scritto io il regolamento ma ... cosa vuol
dire 2 giorni solari? :-)
potrò postare dalle 17 del 19 maggio?
boh ... intanto per non sbagliare ... aspetto :-)
ciao
r
Direi dalle 17:01:01 :-)
> boh ... intanto per non sbagliare ... aspetto :-)
Aspetta aspetta ... chissà che intanto non te lo dimentichi :-)
Bye!
scossa
hai tempo ancora 3 ore per soffiarmi i 3 punti e avere la
soddisfazione di TagliarMI
eccomi! ... mi stavo dimenticando :-)
=SE(MAX(MATR.PRODOTTO((rng="x")-(rng="o");
{1\1\1})^2;MATR.PRODOTTO(MATR.TRASPOSTA((rng="x")-(rng="o"));
{1\1\1})^2;SOMMA(((rng="x")-
(rng="o"))*{1;0;0\0;1;0\0;0;1})^2;SOMMA(((rng="x")-
(rng="o"))*{0;0;1\0;1;0\1;0;0})^2)=9;"Hai vinto!";"")
da confermare con ctrl+maiusc+invio
il risparmio è sulla funzione ass ... che serviva a rendere unici i
valori -3 e 3 ... utilizzo in questa quindi l'elevamento a potenza che
permette ugualmente di unire i due risultati in uno ... e a me di
aggiudicarmi (per ora) i 3 punti per la formula breve :-)
ciao
r
me ne approfitto in maniera miserabile e indegna .....
definisci nome z=(rng="x")-(rng="o")
quindi
=SE(MAX(MATR.PRODOTTO(z;{1\1\1})^2;MATR.PRODOTTO(MATR.TRASPOSTA(z);
{1\1\1})^2;SOMMA(z*{1;0;0\0;1;0\0;0;1})^2;SOMMA(z*{0;0;1\0;1;0\1;0;0})^2)=9;"Hai
vinto!";"")
ancora + approfittatore:
definisci nome z=(rng="x")-(rng="o")
definisci nome t={1\1\1}
quindi
=SE(MAX(MATR.PRODOTTO(z;t)^2;MATR.PRODOTTO(MATR.TRASPOSTA(z);t)^2;SOMMA(z*{1;0;0\0;1;0\0;0;1})^2;SOMMA(z*{0;0;1\0;1;0\1;0;0})^2)=9;"Hai
vinto!";"")
se FALSO puo' essere considerato errore .....
definisci nome z=(rng="x")-(rng="o")
definisci nome t={1\1\1}
=SE(MAX(MATR.PRODOTTO(z;t)^2;MATR.PRODOTTO(MATR.TRASPOSTA(z);t)^2;SOMMA(z*{1;0;0\0;1;0\0;0;1})^2;SOMMA(z*{0;0;1\0;1;0\1;0;0})^2)=9;"Hai
vinto!")
se no #VALORE!, allora .....
definisci nome z=(rng="x")-(rng="o")
definisci nome t={1\1\1}
=SE(MAX(MATR.PRODOTTO(z;t)^2;MATR.PRODOTTO(MATR.TRASPOSTA(z);t)^2;SOMMA(z*{1;0;0\0;1;0\0;0;1})^2;SOMMA(z*{0;0;1\0;1;0\1;0;0})^2)=9;"Hai
vinto!";)
basta mi vergogno troppo
e facevo bene a vergognarmi perche il testo diceva:
Per aggiudicarsi la formula breve (3 punti) viceversa si combatterà
su
formula senza appoggio.
....... quindi niente nomi
ciao
Giuro che, prima di aver letto la tua soluzione, avevo "pensato"
anch'io all'elevamento a potenza ma no ho avuto disponibile il PC per
provare ad applicarlo in qualche modo.
Comunque complimenti per la soluzione.
Bye!
scossa
in generale, l'uso di un nome non accorcia mai la formula. Ad ogni
nome deve essere sostituita la formula che lo definisce. Non posso
conteggiare la formula di un nome una volta sola se poi il nome viene
usato 2 ... non trovi?
Ti ricordo che devi postare il Quesito 15 ...
ciao
r
lo so, lo so, ci sto pensando :-)
ah ... ok ... fai pure con comodo ... volevo solo essere certo che il
quesito sarebbe arrivato prima o poi :-)
ciao
r