comunque per ridurre questo codice?


0

Ho creato una formula che indicizza le corrispondenze da diversi fogli di lavoro e quindi li somma.

È comunque possibile ridurre o migliorare la codifica? Ho provato e fallito, ma non ho ottenuto risultati :(

.

Ho il codice seguente;

=IFERROR(INDEX('Report 1'!BC:BC,MATCH(B13,'Report 1'!$A:$A,0)),"0")
+IFERROR(INDEX('Report 2'!BC:BC,MATCH(B13,'Report 2'!$A:$A,0)),"0")
+IFERROR(INDEX('Report 3'!BC:BC,MATCH(B13,'Report 3'!$A:$A,0)),"0")
+IFERROR(INDEX('Report 4'!BC:BC,MATCH(B13,'Report 4'!$A:$A,0)),"0")
+IFERROR(INDEX('Report 5'!BC:BC,MATCH(B13,'Report 5'!$A:$A,0)),"0")

Risposte:


1

Per ottenere risultati dalla tua formula rimuovi il "da intorno in 0modo che la formula non stia provando ad aggiungere stringhe di testo.

ma possiamo abbreviare la formula con un SUMIF 3D

Con i nomi dei fogli desiderati in un elenco e li fa riferimento a INDIRECT in un SUMIF:

=SUMPRODUCT(SUMIF(INDIRECT("'" & D1:D5 & "'!A:A"),B13,INDIRECT("'" & D1:D5 & "'!BC:BC")))

inserisci qui la descrizione dell'immagine


0

È comunque possibile ridurre o migliorare la codifica?

Non proprio:(

Sebbene sia possibile utilizzare alcune soluzioni alternative:

  • intervallo denominato : è possibile definire nomi per gli intervalli e fare riferimento ad essi
  • cella di supporto: usa un'altra cella per memorizzare il risultato della tua MATCHfunzione, quindi non è necessario eseguirla più volte
  • UDF: usa una macro per creare una funzione definita dall'utente in cui puoi scrivere codice più bello della tua formula attuale
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.