Rank: AiutAmico
Iscritto dal : 4/8/2011 Posts: 4,089
|
Ciao, gente, premesso che uso Calc dell'OpenOffice, ma che una eventuale funzione di Excel la sò convertire...
allora, vediamo se riesco a farmi capire...
ho 2 fogli, che chiamerò UNO e DUE
nel foglio DUE ho due celle con i riferimenti numerici a un intervallo di colonne del foglio UNO, esempio colonna da 7 a 10
nel foglio UNO e nell'intervallo colonne su indicato nel rigo 20 devo verificare che ci sia qualcosa e riportarlo in una cella del foglio DUE
Qualcosa tipo: cerca in foglio UNO.colonna7:colonna10 e riga20, e riporta il valore se non è vuoto, se vuoto scrivi un valore fisso ("PIPPO")
Come si fà?
Dengh'iu
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
salve supposto che in cella A1 ci sia il riferimento della prima colonna del range da elaborare nel foglio2 e in cella B1 il riferimento dell'ultima colonna. prova questa: =SE(MATR.SOMMA.PRODOTTO(--(INDIRETTO(INDIRIZZO(20;A1;;;"Foglio2")&":"&INDIRIZZO(20;B1))<>"")*1)>=1;"pippo";"") come risultato ritorna "VERO" se almeno 1 cella delle colonne non risulta vuota. saluti Giap
|
Rank: AiutAmico
Iscritto dal : 4/8/2011 Posts: 4,089
|
allora... intanto grazie della risposta, che mi è stata d'aiuto mi sono però accorto di non aver specificato che il dato da ricercare era la presenza di una stringa, e se non viene trovato nulla deve essere inserita un'altra stringa
ho comunque risolto, leggendo anche il tuo suggerimento (INDIRIZZO e INDIRETTO, non li conoscevo), vediamo se si capisce, per i futuri 'help'
Ho spezzato la formula in 3 parti per comprensione mia e di chi legge, volendo si può unire, ovviamente. L'esempio poi fà riferimento alla ricerca in un singolo foglio, ma si può modificare come nel tuo esempio.
Nelle celle G28 e G29 ci sono i riferimenti alle colonne dell'intervallo interessato, intervallo riferito alla riga 20, perciò:
C43 = INDIRIZZO(20;G28;4)&":"&INDIRIZZO(20;G29;4) mi dà l'intervallo 'G20:J20' supponendo per G28=7 e G29=10
poi
verifico se c'è 'qualcosa' nell'intervallo selezionato con C43, e mi tira fuori la colonna dove c'è il dato:
D40 =CONFRONTA("<>";INDIRETTO(C43);-1)
questa però mi riporta #N/D se non c'è niente, per cui, in finale:
D41 =SE(VAL.NON.DISP(D40);"pippo";INDICE(INDIRETTO(C43); ;D40))
che mi riporta "pippo" se non ci sono stringhe nell'intervallo, altrimenti la stringa trovata
Sembra ok? O ci sono altri metodi? Ho fatto delle verifiche e mi sembra ok, il tutto in Calc di OpenOffice, immagino che per Excel sia più o meno lo stesso
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
salve con l'ulteriore informazione, metodo alternativo in unica formula, modificando quella segnalata: =SE(MATR.SOMMA.PRODOTTO(--(INDIRETTO(INDIRIZZO(20;G28)&":"&INDIRIZZO(20;G29))<>"")*1)>=1;INDICE(INDIRETTO(INDIRIZZO(20;G28)&":"&INDIRIZZO(20;G29));1;CONFRONTA("<>";INDIRETTO(INDIRIZZO(20;G28)&":"&INDIRIZZO(20;G29));-1));"pippo") saluti Giap
|
Rank: AiutAmico
Iscritto dal : 4/8/2011 Posts: 4,089
|
a10n11 ha scritto:=SE(MATR.SOMMA.PRODOTTO(--(INDIRETTO(INDIRIZZO(20;G28)&":"&INDIRIZZO(20;G29))<>"")*1)>=1;INDICE(INDIRETTO(INDIRIZZO(20;G28)&":"&INDIRIZZO(20;G29));1;CONFRONTA("<>";INDIRETTO(INDIRIZZO(20;G28)&":"&INDIRIZZO(20;G29));-1));"pippo") Funziona perfettamente anche questa Anche MATR.SOMMA.PRODOTTO non lo conoscevo, della serie 'non si smette mai di imparare' o (versione alternativa) 'nessuno è nato imparato' Thank's ciao
|