Ciao Paolo,
Grazie per averci contattato. Sembra che tu voglia copiare un'intera riga da un foglio all'altro in Excel in base a una condizione. A tale scopo, è possibile utilizzare una combinazione di funzioni di Excel o VBA (Visual Basic, Applications Edition). Ti fornirò entrambi i metodi.
1: Utilizzo delle funzioni di Excel (SE e INDICE/CONFRONTA)
Supponendo che i dati si trovino in Foglio1 e che tu voglia copiare l'intera riga in Foglio2 se il valore nella colonna A di Foglio1 corrisponde a un valore predeterminato (ad esempio, "ValoreCondizioneTua"), puoi utilizzare la seguente formula:
Nella prima cella di Foglio2 in cui si desidera visualizzare il primo valore, immettere la seguente formula:
=SE(INDICE(Foglio1!$A$1:$Z$100; CONFRONTA("ValoreCondizioneTuo", Foglio1!$A$1:$A 100$; 0), 1) = "ValoreCondizioneTuo", INDICE(Foglio1!$A$1:$Z 100$, CONFRONTA("ValoreCondizioneTuo", Foglio1!$A 1$1:$A 100$, 0), 0), "")
Trascinare questa formula sulla riga per copiare l'intera riga.
Assicurati di regolare l'intervallo (Foglio1!$A$1:$Z$100) in base all'intervallo di dati effettivo.
2: Utilizzo di VBA (Macro)
Se si ha dimestichezza con l'utilizzo di VBA, è possibile utilizzare la macro seguente per eseguire la stessa attività:
-Premere Alt + F11 per aprire l'editor VBA.
Inserire un nuovo modulo: Inserisci > modulo.
-Copia e incolla il seguente codice nel modulo:
Sub CopyRowBasedOnCondition()
Dim wsSource come foglio di lavoro
Dim wsDestination come foglio di lavoro
Dim conditionValue As Variant
Dim lastRow As Long
Dim i Finché
' Impostare i fogli di origine e di destinazione
Imposta wsSource = ThisWorkbook.Sheets("Foglio1") ' Cambia "Foglio1" con il nome del foglio di origine
Imposta wsDestination = ThisWorkbook.Sheets("Foglio2") ' Cambia "Foglio2" con il nome del foglio di destinazione
' Impostare il valore della condizione
conditionValue = "YourConditionValue" ' Cambia "YourConditionValue" con il valore che stai cercando
' Trova l'ultima riga con i dati nel foglio di origine
lastRow = wsSource.Cells(wsSource.Rows.Count, "A"). Fine(xlUp). Fila
' Scorrere le righe nel foglio di origine
Per i = 1 Per lastRow
' Verificare se la condizione è soddisfatta nella colonna A
Se wsSource.Cells(i, 1). Valore = condizioneValore Allora
' Copia l'intera riga nel foglio di destinazione
wsSource.Rows(i). Copiare wsDestination.Rows(wsDestination.Cells(wsDestination.Rows.Count, "A"). Fine(xlUp). Ferro + 1)
Fine se
Avanti i
Fine sottomarino
-Chiudi l'editor VBA.
-Eseguire la macro: Alt + F8, selezionare CopyRowBasedOnCondition e fare clic su "Esegui".
Assicurati di modificare i nomi dei fogli ("Foglio1" e "Foglio2"), il valore della condizione e le colonne in base ai tuoi requisiti specifici.
Spero che questo aiuti.
Saluti
Sola
Questa risposta è stata tradotta automaticamente. Di conseguenza, potrebbero esserci errori grammaticali o espressioni strane.