Risultati da 1 a 12 di 12

Discussione: Copiare intera riga in altro foglio se...



  1. #1
    L'avatar di KARLO16
    Clicca e Apri
    Data Registrazione
    Jun 2016
    Località
    Cagliari
    Messaggi
    193
    Versione Office
    excel 2013
    Likes ricevuti
    0
    Likes dati
    16

    Copiare intera riga in altro foglio se...

    Salve ci risentiamo.
    Altro giro altro quesito.
    Questa volta dovrei fare questo progetto:
    In un foglio ho la tabella dati.
    Nel secondo dovrei estrapolare dalla tabella dati solo quelli che la data risulta entri il primo semestre e copiare intera riga nel foglio "1 semestre".
    Nel terzo foglio solo i dati e quindi l'intera riga del solo 2 semestre.
    Tutto questo se è possibile solo con formule e senza VB.
    All'uopo vi allego file di esempio.
    Grazie di cuore a tutti. Siete fantastici.
    File Allegati File Allegati

  2. #2

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4016
    Versione Office
    2013
    Likes ricevuti
    1225
    Likes dati
    923

    Re: Copiare intera riga in altro foglio se...

    Ciao KARLO16,

    puoi usare queste formule matriciali (quindi da confermare con la combinazione di tasti CTRL+MAIUSC+INVIO)

    Nella cella A2 del foglio "1 semestre" :

    =SE.ERRORE(INDICE('Dati generali'!$A$1:$D$5;PICCOLO(SE(MESE('Dati generali'!$D$2:$D$5)<=6;RIF.RIGA('Dati generali'!$A$2:$A$5);"");RIF.RIGA(A1));RIF.COLONNA(A1));"")

    nella cella A2 del foglio "2 semestre" :

    =SE.ERRORE(INDICE('Dati generali'!$A$1:$D$5;PICCOLO(SE(MESE('Dati generali'!$D$2:$D$5)>6;RIF.RIGA('Dati generali'!$A$2:$A$5);"");RIF.RIGA(A1));RIF.COLONNA(A1));"")

    da copiare entrambe in basso e a destra fin dove serve.

    [EDIT]
    Ho visto adesso che hai la versione 2013, quindi puoi utilizzare la funzione AGGREGA ed evitare le formule matriciali.

    Ad esempio, nella cella A2 del foglio "1 semestre" la formula diventerebbe:

    =SE.ERRORE(INDICE('Dati generali'!$A$1:$D$5;AGGREGA(15;6;(1/(MESE('Dati generali'!$D$2:$D$5)<=6))*RIF.RIGA($A$2:$A$5);RIF.RIGA(A1));RIF.COLONNA(A1));"")

    da confermare semplicemente con INVIO.
    File Allegati File Allegati

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  3. I seguenti 4 utenti hanno dato un "Like" a cromagno per questo post:


  4. #3
    L'avatar di KARLO16
    Clicca e Apri
    Data Registrazione
    Jun 2016
    Località
    Cagliari
    Messaggi
    193
    Versione Office
    excel 2013
    Likes ricevuti
    0
    Likes dati
    16

    Re: Copiare intera riga in altro foglio se...

    Siete un portento.
    Ma non vi riposate mai?
    E' perfetto.
    Naturalmente posso inserire altre colonne. Fino a quante?
    Poi ho visto che siamo della stessa regione.
    Ciao e grazie di cuore

    Scusami. ma tutto ciò funziona anche se il foglio dati è importato da una query di access?

  5. #4

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7125
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2063
    Likes dati
    1298

    Re: Copiare intera riga in altro foglio se...

    Citazione Originariamente Scritto da KARLO16 Visualizza Messaggio
    ....
    Naturalmente posso inserire altre colonne. Fino a quante?
    ...
    ..
    Ciao, fino a quanto vuoi.

    Ti faccio questa piccola modifica alla formula di Cromagno, che saluto.

    In A2 del Foglio1:

    =SE.ERRORE(INDICE('Dati generali'!$A$1:$G$10000;AGGREGA(15;6;(1/(MESE(" "&'Dati generali'!$D$2:$D$10000)<=6))*RIF.RIGA($A$2:$A$10000);RIF.RIGA(A1));RIF.COLONNA(A1));"")

    In A2 del Foglio2:

    =SE.ERRORE(INDICE('Dati generali'!$A$1:$G$10000;AGGREGA(15;6;(1/(MESE(" "&'Dati generali'!$D$2:$D$10000)>6))*RIF.RIGA($A$2:$A$10000);RIF.RIGA(A1));RIF.COLONNA(A1));"")

    In pratica per aumentare basta che modifichi la lettera della colonna (io ho messo G) fino a ricomprendere tutti i tuoi dati mentre per le righe, con l'esempio sopra, puoi inserire fino a 10000, che se non dovessero ancora esserti sufficienti basta che aumenti tu stesso il numero.

    Questo piccola modifica (
    " "&) è un trucchetto per non farti vedere gli zeri se le righe sono vuote.
    File Allegati File Allegati
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  6. I seguenti 3 utenti hanno dato un "Like" a ges per questo post:


  7. #5
    L'avatar di KARLO16
    Clicca e Apri
    Data Registrazione
    Jun 2016
    Località
    Cagliari
    Messaggi
    193
    Versione Office
    excel 2013
    Likes ricevuti
    0
    Likes dati
    16

    Re: Copiare intera riga in altro foglio se...

    Grazie ancor meglio.
    In tutti i modi devo usare le formule per office 10 perchè in associazione abbiamo quello (o 2007?) non ricordo bene.
    Un altro problema mi sorge quando qualche socio paga anticipatamente es. 12/12/2015 per l'anno 2016.
    In questo caso non lo segna o lo segna 2 semestre.
    Salve

  8. #6

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7125
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2063
    Likes dati
    1298

    Re: Copiare intera riga in altro foglio se...

    Citazione Originariamente Scritto da KARLO16 Visualizza Messaggio
    Grazie ancor meglio.
    ....
    Un altro problema mi sorge quando qualche socio paga anticipatamente es. 12/12/2015 per l'anno 2016.
    In questo caso non lo segna o lo segna 2 semestre.
    ...
    In questo caso lo segna.

    Se vuoi che segni solo quelli del 2016 nella formula devi inserire l'anno:

    =SE.ERRORE(INDICE('Dati generali'!$A$1:$G$10000;AGGREGA(15;6;(1/(MESE(" "&'Dati generali'!$D$2:$D$10000)>6)/(ANNO(" "&'Dati generali'!$D$2:$D$10000)=2016))*RIF.RIGA($A$2:$A$10000);RIF.RIGA(A1));RIF.COLONNA(A1));"")
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  9. I seguenti utenti hanno dato un "Like"


  10. #7
    L'avatar di KARLO16
    Clicca e Apri
    Data Registrazione
    Jun 2016
    Località
    Cagliari
    Messaggi
    193
    Versione Office
    excel 2013
    Likes ricevuti
    0
    Likes dati
    16

    Re: Copiare intera riga in altro foglio se...

    Ciao.
    Neanche così fa al mio caso.Premetto che i dati generali li importo in automatico da un collegamento di una query di access.
    Quindi qui sono già filtrati per anno.
    Nell'anno possono essere fatti dei pagamenti quote anche anticipatamente per l'anno successivo.
    Quindi mi servirebbe una formula che mi prenda tutte le date fino alla fine di giugno, anche se pagate nella'anno precedente.
    Per secondo tutte le date da 1 luglio al fino al 31 dicembre senza prendere in considerazione eventuali pagamenti effettuati per l'anno successivo 2017
    Salve

  11. #8
    L'avatar di Berna11
    Clicca e Apri
    Data Registrazione
    Feb 2016
    Località
    Latina
    Età
    62
    Messaggi
    2283
    Versione Office
    Excel 2010
    Likes ricevuti
    907
    Likes dati
    450

    Re: Copiare intera riga in altro foglio se...

    Un saluto a tutti,
    Quindi mi servirebbe una formula che mi prenda tutte le date fino alla fine di giugno, anche se pagate nella'anno precedente.
    Per secondo tutte le date da 1 luglio al fino al 31 dicembre senza prendere in considerazione eventuali pagamenti effettuati per l'anno successivo 2017
    forse non hai ben impostato l'ultima formula di ges che prende in considerazione anche l'anno?
    Secondo me fa quello che chiedi o non ho capito la tua richiesta.

    Cmq usando la formula di ges ti ho messo un menu a tendina nel foglio Dati generali da dove puoi selezionare l'anno che ti interessa e nella formula ho sostituito 2016 con la cella contenente il menu a tendina.
    In tal modo non devi modificare la formula per ogni anno che ti serve.
    File Allegati File Allegati

  12. #9
    L'avatar di KARLO16
    Clicca e Apri
    Data Registrazione
    Jun 2016
    Località
    Cagliari
    Messaggi
    193
    Versione Office
    excel 2013
    Likes ricevuti
    0
    Likes dati
    16

    Re: Copiare intera riga in altro foglio se...

    Salve, evidentemente non sono riuscito a far capire quello che mi serve.
    Ricapitoliamo.
    Quello che mi serve è sapere nel primo semestre quanti soci sono in regola. Sono in regola anche coloro che hanno pagato anticipatamente l'anno precedente.
    Es: 1 socio 12/12/2015
    2 socio 2/1/2016
    3 socio 5/5/2016
    Nel 1 semestre sono in regola numero 3 soci.
    Formula tipo che mi conti tutte le date (anche quelle dell'anno precedente) fino a tutto il mese di giugno.
    Seconda formula che mi conti tutte le date dal 1 luglio al 31 dicembre .
    Il socio che ha pagato nel mese di dicembre 2015 per l'anno 2016 deve risultare nella tabella del 1 semestre.
    Spero di avermi spiegato.
    Sembra che abbia trovato queste formule che dovrebbero andare bene




    =CONTA.SE(B14:B17;"<01/03/2010")
    Conta il numero di celle nell'intervallo B14:B17 con una data minore di 01/03/2010 (3)




    =CONTA.PIÙ.SE(B14:B17;">=01/01/2010";B14:B17;"<=31/12/2010")
    Conta il numero di celle nell'intervallo B14:B17 comprese tra 01/01/2010 e 12/31/2010 incluse (3).

    Ora il tutto bisognerebbe fallo interagire per far in modo di spostare l'intera riga nel 1 semestre o nel 2 semestre con la seconda formula

    Grazie

  13. #10

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7125
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2063
    Likes dati
    1298

    Re: Copiare intera riga in altro foglio se...

    Un saluto a Berna,
    forse ho capito, vorresti così:

    Per primo semestre 2016 e 2015

    =SE.ERRORE(INDICE('Dati generali'!$A$1:$G$10000;AGGREGA(15;6;(1/((MESE(" "&'Dati generali'!$D$2:$D$10000)<=6)+(ANNO(" "&'Dati generali'!$D$2:$D$10000)=2015)))*RIF.RIGA($A$2:$A$10000);RIF.RIGA(A1));RIF.COLONNA(A1));"")

    Per secondo semestre 2016:

    =SE.ERRORE(INDICE('Dati generali'!$A$1:$G$10000;AGGREGA(15;6;(1/(MESE(" "&'Dati generali'!$D$2:$D$10000)>6)/(ANNO(" "&'Dati generali'!$D$2:$D$10000)=2016))*RIF.RIGA($A$2:$A$10000);RIF.RIGA(A1));RIF.COLONNA(A1));"")

    File Allegati File Allegati
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  14. I seguenti utenti hanno dato un "Like"


  15. #11

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4016
    Versione Office
    2013
    Likes ricevuti
    1225
    Likes dati
    923

    Re: Copiare intera riga in altro foglio se...

    Citazione Originariamente Scritto da KARLO16 Visualizza Messaggio
    Salve, evidentemente non sono riuscito a far capire quello che mi serve.
    Ricapitoliamo.
    Quello che mi serve è sapere nel primo semestre quanti soci sono in regola. Sono in regola anche coloro che hanno pagato anticipatamente l'anno precedente.
    Es: 1 socio 12/12/2015
    2 socio 2/1/2016
    3 socio 5/5/2016
    Nel 1 semestre sono in regola numero 3 soci.
    Formula tipo che mi conti tutte le date (anche quelle dell'anno precedente) fino a tutto il mese di giugno.
    Seconda formula che mi conti tutte le date dal 1 luglio al 31 dicembre .
    Il socio che ha pagato nel mese di dicembre 2015 per l'anno 2016 deve risultare nella tabella del 1 semestre.
    Spero di avermi spiegato.
    Sembra che abbia trovato queste formule che dovrebbero andare bene




    =CONTA.SE(B14:B17;"<01/03/2010")
    Conta il numero di celle nell'intervallo B14:B17 con una data minore di 01/03/2010 (3)




    =CONTA.PIÙ.SE(B14:B17;">=01/01/2010";B14:B17;"<=31/12/2010")
    Conta il numero di celle nell'intervallo B14:B17 comprese tra 01/01/2010 e 12/31/2010 incluse (3).

    Ora il tutto bisognerebbe fallo interagire per far in modo di spostare l'intera riga nel 1 semestre o nel 2 semestre con la seconda formula

    Grazie
    Ciao a tutti,
    pensavo fosse già risolta la discussione... a quanto pare mi sbagliavo

    @KARLO

    se dopo aver visionato le ultime formule di ges, non dovessi ancora trovare soluzione, prova ad allegare un nuovo file dove spieghi quello che vuoi ottenere (che vuoi ottenere adesso), con quanti più dati tu ritenga indispensabili per includere ogni casistica.

    P.S.
    Le formule tipo SOMMA.PIU.SE, CONTA.SE etc... non vanno molto d'accordo con le date, io userei delle alternative.

    Ciao
    Tore

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  16. #12

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7125
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2063
    Likes dati
    1298

    Re: Copiare intera riga in altro foglio se...

    Allego anche soluzione col vba

    Codice: 
    Sub inserisci()
    Dim wks1 As Worksheet, wks2 As Worksheet, wks3 As Worksheet
    Dim uRow As Long, uRow2 As Long, uRow3 As Long, x As Long, y As Long
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    Set wks1 = Worksheets("Dati generali")
    Set wks2 = Worksheets("1 semestre")
    Set wks3 = Worksheets("2 semestre")
    uRow = Cells(Rows.Count, 4).End(xlUp).Row
    x = 2
    y = 2
        For i = 2 To uRow
            If Format(wks1.Cells(i, 4), "mm") <= 6 Or Format(wks1.Cells(i, 4), "yy") = 15 Then
                With wks2
                    .Cells(x, 1) = wks1.Cells(i, 1)
                    .Cells(x, 2) = wks1.Cells(i, 2)
                    .Cells(x, 3) = wks1.Cells(i, 3)
                    .Cells(x, 4) = wks1.Cells(i, 4)
                    .Cells(x, 5) = wks1.Cells(i, 5)
                    .Cells(x, 6) = wks1.Cells(i, 6)
                    .Cells(x, 7) = wks1.Cells(i, 7)
                x = x + 1
                End With
            ElseIf Format(wks1.Cells(i, 4), "mm") > 6 And Format(wks1.Cells(i, 4), "yy") = 16 Then
                With wks3
                    .Cells(y, 1) = wks1.Cells(i, 1)
                    .Cells(y, 2) = wks1.Cells(i, 2)
                    .Cells(y, 3) = wks1.Cells(i, 3)
                    .Cells(y, 4) = wks1.Cells(i, 4)
                    .Cells(y, 5) = wks1.Cells(i, 5)
                    .Cells(y, 6) = wks1.Cells(i, 6)
                    .Cells(y, 7) = wks1.Cells(i, 7)
                End With
            y = y + 1
            End If
        Next
     uRow2 = wks2.Cells(Rows.Count, 1).End(xlUp).Row
        wks2.Sort.SortFields.Clear
        wks2.Sort.SortFields.Add Key:=Range( _
            "D2:D" & uRow2), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
            xlSortNormal
        wks2.Sort.SortFields.Add Key:=Range( _
            "A2:A" & uRow2), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
            xlSortNormal
        wks2.Sort.SortFields.Add Key:=Range( _
            "B2:B" & uRow2), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
            xlSortNormal
        wks2.Sort.SortFields.Add Key:=Range( _
            "C2:C" & uRow2), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
            xlSortNormal
        With wks2.Sort
            .SetRange Range("A1:G1000")
            .Header = xlYes
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
       uRow3 = wks3.Cells(Rows.Count, 1).End(xlUp).Row
        wks3.Sort.SortFields.Clear
        wks3.Sort.SortFields.Add Key:=Range( _
            "D2:D" & uRow2), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
            xlSortNormal
        wks3.Sort.SortFields.Add Key:=Range( _
            "A2:A" & uRow2), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
            xlSortNormal
        wks3.Sort.SortFields.Add Key:=Range( _
            "B2:B" & uRow2), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
            xlSortNormal
        wks3.Sort.SortFields.Add Key:=Range( _
            "C2:C" & uRow2), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
            xlSortNormal
        With wks3.Sort
            .SetRange Range("A1:G1000")
            .Header = xlYes
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
    Set wks1 = Nothing
    Set wks2 = Nothing
    Set wks3 = Nothing
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
    End Sub
    EDIT: Ciao Cromagno, non ti avevo visto.
    File Allegati File Allegati
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  17. I seguenti 2 utenti hanno dato un "Like" a ges per questo post:


Discussioni Simili

  1. [Risolto] Copiare in un altro foglio celle di una riga se si verifica una condizione
    Di sowhatt nel forum Domande su Excel VBA e MACRO
    Risposte: 4
    Ultimo Messaggio: 03/03/17, 14:05
  2. Risposte: 2
    Ultimo Messaggio: 28/02/17, 21:47
  3. Copiare dati da un foglio ad un altro
    Di sergiogranero nel forum Domande su Excel VBA e MACRO
    Risposte: 2
    Ultimo Messaggio: 04/12/16, 10:35
  4. Risposte: 18
    Ultimo Messaggio: 22/09/16, 02:23
  5. Copiare contenuto colonna e riga in altro foglio
    Di Pcl90 nel forum Domande su Excel in generale
    Risposte: 3
    Ultimo Messaggio: 23/06/16, 14:08

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •