Risolto Copiare riga se fatture pagate

Morronce

Utente junior
18 Settembre 2020
24
1
2007
0
Buongiorno a tutti!
Sempre per questo file avrei bisogno di stampare nel foglio1 tutte le fatture che sono state pagate dal 01/01/2021 in poi, come si vede nel foglio ho usato la formula già indicata sopra semplicemente cambiando: 'Elenco Fatture'!$H$4:$H$5000<=OGGI() in 'Elenco Fatture'!$I$4:$I$5000>=DATA(2021;01;01) ma stampa anche fatture pagate prima....qualcuno mi può aiutare?
 

Allegati

Berna11

Excel Expert
Moderatore
20 Febbraio 2016
10.086
1.445
Latina
Excel 2010
1.158
Un saluto a tutti
fai questa prova metti in L2 foglio1

=SE.ERRORE(INDICE('Elenco Fatture'!I$4:I$5000;PICCOLO(SE('Elenco Fatture'!$I$4:$I$5000>=DATA(2021;1;1);RIF.RIGA($B$4:$B$5000)-3);RIGHE($A$1:A1)));"")

conferma ctrl+maiisc+invio e trascina in basso
come vedi nelle prime celle hai dei numeri se scendi trovi delle date
quel formato di date scritto nel foglio Elenco fatture non lo legge
Infatti, se vai I19 10/06/2020 e la riscrivi ti sparisce.
Fai lo stesso con tutte quelle date che ti mette nel foglio1 per intero
compresi anche il 2021 .
Se vuoi anche la spunta usa:
=SE.ERRORE(INDICE('Elenco Fatture'!I$4:I$5000;PICCOLO(SE(('Elenco Fatture'!$I$4:$I$5000>=DATA(2021;1;1))*('Elenco Fatture'!$A$4:$A$5000="✓");RIF.RIGA($B$4:$B$5000)-3);RIGHE($A$1:J1)));"")

Altra cosa invece di mettere >=DATA(2021;1;1)
ed ogni volta andare a variare la formula
puoi usare una cella dove inserirai la data da confrontare esempio L2
ed in formula diventa >=$L$2
 
  • Like
Reactions: Morronce

Powerwin

VBA Expert
Supermoderatore
17 Marzo 2016
8.903
245
vicino a Milano
2019 e 365
304
Ciao a tutti, ho spostato il post accodato in una nuova discussione.
M @Morronce la prossima volta stai più attento
 

Morronce

Utente junior
18 Settembre 2020
24
1
2007
0
Errore mio pensavo fosse più corretto cosi. Non accadrà piùPollicioneInSu

Berna11 @Berna11 Credo di non aver capito, cioè i numeri delle prime celle sono cosi perchè vengono formattati in automatico come "generale" ma quando cambi il formato in "Data" diventano le date corrette indicate nel foglio elenco fatture, ma non ho capito quando scrivi:
"Infatti, se vai I19 10/06/2020 e la riscrivi ti sparisce.
Fai lo stesso con tutte quelle date che ti mette nel foglio1 per intero
compresi anche il 2021."


Se la riscrivo dove?In elenco fatture o in foglio 1? E sparisce in quale foglio?
Riscriverla in foglio 1 presumo di no perchè se no sovrascrivi la formula.....quindi ho provato a cambiarla in elenco fatture ma la data non è sparita ne da un foglio ne dall'altro..
In elenco fatture le date sono formattate nello stesso modo quindi perchè nel foglio1 alcune le legge(per capirci quelle che diventano un numero) e le altre no?

EDIT:
Niente ora ho capito, e ho notato che tutte quelle che non riconosceva avevano lo spazio davanti in elencofatture.....può essere questo il problema? perchè togliere a mano gli spazi da mille e passa fatture sarebbe un pò complicato........( con cerca e sostituisci selezionando la colonna I mi toglierebbe anche tutti gli spazi dalle varie intestazioni e dalle voci "stornata da....".
E a proposito di questo nel foglio 1 c'è la possibilità di saltare le righe dove non è presente una data ma un testo?

"Altra cosa invece di mettere >=DATA(2021;1;1)
ed ogni volta andare a variare la formula
puoi usare una cella dove inserirai la data da confrontare esempio L2
ed in formula diventa >=$L$2"
Invece per questo ti ringrazio una cosa banalissima a cui non avevo pensato.
 
Ultima modifica:

Morronce

Utente junior
18 Settembre 2020
24
1
2007
0
Molto Utile non ne conoscevo l'esistenza, peccato che con le date già corrette le trasforma in numero e anche riformattandole come data rimane sempre il numero....
 

Terio

Utente abituale
6 Gennaio 2021
918
75
51
Arce
2016, 2019
105
Oppure, in I3:
=SE.ERRORE(SOSTITUISCI(INDICE('Elenco Fatture'!I$4:I$5006;PICCOLO(SE(('Elenco Fatture'!$I$4:$I$5006>=DATA(2021;1;1))*('Elenco Fatture'!$A$4:$A$5006="✓");RIF.RIGA($B$4:$B$5000)-3);RIGHE($A$1:J1)));" ";"")*1;"")
 
  • Like
Reactions: Morronce

Morronce

Utente junior
18 Settembre 2020
24
1
2007
0
Terio @Terio Dici per annullare gli spazi o per saltare righe dove c'è del testo?
 

Terio

Utente abituale
6 Gennaio 2021
918
75
51
Arce
2016, 2019
105
Toglierebbe gli spazi alla data e la converte se serve, a questo punto solo la riga 13 non ti restituisce valori perché è presente stornata fattura n°. Proiettandola nel Foglio1 le recupera tutte
 

Morronce

Utente junior
18 Settembre 2020
24
1
2007
0
Provata... ma copia anche quelle antecedenti al 2021
Non ho capito se la tua formula sostituisce quella principale a inizio post o se serve solo per togliere gli spazi
 
Ultima modifica:

Terio

Utente abituale
6 Gennaio 2021
918
75
51
Arce
2016, 2019
105
Serviva solo a trasformare il risultato in data, ma visto che non le filtra, se in I3 usi:
{=SE.ERRORE(INDICE('Elenco Fatture'!$I$1:$I$359;AGGREGA(15;6;(RIF.RIGA('Elenco Fatture'!$I$3:$I$5006)/(SE.ERRORE(ANNULLA.SPAZI('Elenco Fatture'!$I$3:$I$5006)*1;0)>=$L$1));RIGHE($I$2:I2)));"")}
dovrebbe ora recuperare le sole 2021 (ho applicato la variante di Powerwin @Powerwin e usato il riferimento fisso $L$1 consigliato da Berna11 @Berna11 con la data impostata al 31.12.2020 se vuoi tutte le fatture del 2021)

Ciao.
 
Ultima modifica:

Morronce

Utente junior
18 Settembre 2020
24
1
2007
0
Ti ringrazio molto, ma non è quello di cui ho bisogno, la formula di berna per copiare sul foglio1 funziona perfettamente e copia l'intera riga di quelle pagate dopo il 1/1/2021.
Mi rimane come problema le date con lo spazio a inizio cella nel foglio elencofatture, poichè quest'ultime anche se sono antecedenti al 1/1/2021 vengono copiate nel foglio1.
Quindi ora dovrei semplicemente sostituire nel foglio elencofatture tutte le date che hanno lo spazio davanti,
il problema è che come prima scelta pensavo di fare semplicemente trova e sostituisci, ma nella colonna I ci sono anche altri valori oltre che date( come ad esempio fattura stornata da) quindi questa l'ho esclusa,
la seconda scelta era annulla spazio che sarebbe perfetta ma purtroppo applicandola a tutta la colonna, le date esatte vengono trasformate in numero(tipo 44677) e formattandole in "data in cifre" o in qualsiasi altro formato rimangono sempre in numero.
Non so se mi sono riuscito a spiegare ma ora come ora mi servirebbe un metodo per sistemare la colonna I, cioè per capirci nella colonna j stessi valori e stesse celle della colonna i ma senza gli spazi davanti cosi da poterla sostituire tutta successivamente alla colonna I (ovviamente quando farò il copia e incolla dovrò selezionare le celle con le date fino a quando non cè una cella vuota ovvero quella con stornata da e poi riprendere a selezionare le altre celle e cosi via) se no lo farò a mano uno a uno:piango::LOL:
Posto anche il file.
Grazie a tutti comunquePollicioneInSu
 

Allegati

Berna11

Excel Expert
Moderatore
20 Febbraio 2016
10.086
1.445
Latina
Excel 2010
1.158
Il problema non è solo di spazi
se prendiamo ad esempio la data 09/10/2019 cella I15 Foglio1
(a proposito la data l'hai messa in C1 non in D1 come dice la formula
ho variato la formula mettendo C1)
questa data la troviamo in I32 foglio elenco fatture non ha spazi vuoti ne all'inizio ne alla fine.
Solo entrando nella cella e dando invio scompare questa data dall'elenco del foglio1.

Neanche bon copia incolla valori si toglie ...
bisognerebbe vedere da dove provengono queste date
e, se è solo qualcosa di vecchio, sistemarle a mano.
 

Terio

Utente abituale
6 Gennaio 2021
918
75
51
Arce
2016, 2019
105
Forse sto veramente prendendo una cantonata, ma il Foglio1 per me è risolto, il problema è nelle date e nella restituzione, ma andiamo con ordine e riferiamo il tutto, per ora, al Foglio1.
Per comodità e per semplificare ho usato due celle di appoggio:
cella L1:
data di partenza da superare 31/12/2020, ovviamente con un => puoi usare anche 1/1/2021

cella K1:
=SOMMA(--(SE.ERRORE(ANNULLA.SPAZI('Elenco Fatture'!$I$3:$I$5006)*1;0)>$L$1))
matriciale, calcola quante fatture soddisfano il criterio (in questo caso maggiore di 31.12.2020)

cella I3:
=SE(RIF.RIGA()-2<=$K$1;ANNULLA.SPAZI(INDICE('Elenco Fatture'!$I$1:$I$359;AGGREGA(15;6;(RIF.RIGA('Elenco Fatture'!$I$3:$I$5006)/(SE.ERRORE(ANNULLA.SPAZI('Elenco Fatture'!$I$3:$I$5006)*1;0)>$L$1));RIGHE($I$2:I2))))*1;"")
Come funziona:
1. se sei entro la quantità calcolata in K1 cerca la data, altrimenti restituisce blank
2. controlla le date dopo averle pulite con ANNULLA.SPAZI e convertite in data seriale
3. AGGREGA lavora come PICCOLO, ma gestisce gli errori e li scarta (opzione 6)
4. il risultato viene riportato nella cella corrispondente riprocessandolo come prima con ANNULLA.SPAZI

a me restituisce le 18 fatture con data 2021 e 2022 che conto nel foglio Elenco fatture, se poi la bonifica deve essere fatta anche su questo foglio o vuoi le fatture ordinate c'è altro da fare.
Nella colonna J hai inserito la colonna Metodo annulla-spazio, ma la formula non è completa, in J3 metti:
=ANNULLA.SPAZI(I3)*1
e formato data, a me le restituisce tutte correttamente.

Ciao.
P.S. non ho fatto il doppio controllo con la spunta (✓) perché se c'è la data assolve alla richiesta del post #1, ma se serve si può aggiungere
 

Berna11

Excel Expert
Moderatore
20 Febbraio 2016
10.086
1.445
Latina
Excel 2010
1.158
Buongiorno
Terio @Terio ciao
ero convinto di avertelo segnalato sopra ma, sono andato a rivedere e non ho trovato ...la fretta...
l'utente dichiara la versione 2007 ed AGGREGA non è prevista.
Quindi, lavorando con Piccolo vediamo se questa va bene
I3 Foglio1:
=SE.ERRORE(--ANNULLA.SPAZI(INDICE('Elenco Fatture'!$I$1:$I$2000;PICCOLO(SE(VAL.NUMERO(--ANNULLA.SPAZI('Elenco Fatture'!$I$3:$I$5000));SE(--ANNULLA.SPAZI('Elenco Fatture'!$I$3:$I$5000)>=$C$1;RIF.RIGA('Elenco Fatture'!$I$3:$I$5000)));RIGHE(I$3:I3))));"")

confermare ctrl+maiusc+invio.

se si viole pure il controllo della spunta di colonna A:

=SE.ERRORE(--ANNULLA.SPAZI(INDICE('Elenco Fatture'!$I$1:$I$2000;PICCOLO(SE(VAL.NUMERO(--ANNULLA.SPAZI('Elenco Fatture'!$I$3:$I$5000));SE((--ANNULLA.SPAZI('Elenco Fatture'!$I$3:$I$5000)>=$C$1)*('Elenco Fatture'!$A$3:$A$5000="✓");RIF.RIGA('Elenco Fatture'!$I$3:$I$5000)));RIGHE(I$3:I3))));"")

Speriamo questa funzioni.
 
  • Like
Reactions: Terio and pkrome59

Terio

Utente abituale
6 Gennaio 2021
918
75
51
Arce
2016, 2019
105
...la versione di Excel era sfuggita anche a me, nonostante sia solito verificarla, ma non avendomi M @Morronce segnalato l'errore, bensì la restituzione di un elenco errato, non ci ho proprio dato peso.
Con le tue indicazioni adesso dovrebbe aver risolto:
=SE.ERRORE(--ANNULLA.SPAZI(INDICE('Elenco Fatture'!$I$1:$I$2000;PICCOLO(SE(VAL.NUMERO(--ANNULLA.SPAZI('Elenco Fatture'!$I$3:$I$5000));SE(--ANNULLA.SPAZI('Elenco Fatture'!$I$3:$I$5000)>=$C$1;RIF.RIGA('Elenco Fatture'!$I$3:$I$5000)));RIGHE(I$3:I3))));"")
per me questa risponde (XL2007) al post #1.

Un saluto
 
  • Like
Reactions: Berna11

Morronce

Utente junior
18 Settembre 2020
24
1
2007
0
Buongiorno, vi ringrazio per la velocità delle risposte, la formula dovrebbe funzionare ora.... vi chiedo solo una cosa io l'ho messa sulla cella I3 e giustamente mi copia le date, ma io devo metterla anche in a1 e copiare tutta la riga, quali sono i riferimenti da cambiare nella formula?? Nel mentre ci provo vi faccio sapere nel caso non avessi più bisogno
Grazie Mille.
 

Terio

Utente abituale
6 Gennaio 2021
918
75
51
Arce
2016, 2019
105
Spiegati meglio, le formule sono bloccate sui range da valutare e la RIGHE(I$3:I3) è necessaria a calcolarsi il k della funzione PICCOLO, ma può rimanere dov'è.
La risposta per quello che ho capito è che la formula puoi virtualmente incollarla in qualsiasi cella e trascinarla giù a meno di collisioni con altre formule che hai sul foglio.
Ma devi specificare:
. metterla anche in a1 (su quale foglio)
. e copiare tutta la riga (cosa significa)

ciao
 

Sostieni ForumExcel

Aiutaci a sostenere le spese e a mantenere online la community attraverso una libera donazione!