2016-01-27 15 views
6

che uso ArrayFormula() per semplificare il modo in cui creo i miei rapporti.Come per ripetere una serie n-volte in Google SpreadSheet

Invece di dover creare un riferimento in ogni cella (ad es. =C1, =C2, =C3, =C4 in ogni cella, mi basta usare =arrayformula(C1:C4) in una singola cella. Fa esattamente lo stesso lavoro, ma è molto più semplice e mantiene cose più organizzate, perché ho solo bisogno di cercare in una cella eventuali errori

Funziona alla grande quando devo fare riferimento a un intervallo in un altro come prendere i valori di C1: C4 nell'intervallo A1: A4. cella A1 vorrei solo scrivere =arrayformula(C1:C4) e lo fa la sua magia.

lo fa prendere un po 'più complicato quando le gamme non sono della stessa lunghezza, ma è comunque fattibile. Ad esempio, se voglio impilare due o più link di intervallo C1: C4 sopra B1: B3, sulla cella A1 posso scrivere =arrayformula({C1:C4;B1:B3}).

Il mio problema sta usando arrayFormula() di copiare un modello che si ripete. Ad esempio, se voglio copiare il contenuto della cella C1 4 volte, utilizzerei lo =arrayformula({C1;C1;C1;C1}).

Questo funzionerebbe e otterrebbe l'effetto desiderato. Tuttavia, mi chiedevo se c'è un modo migliore per farlo. Qualcosa come =arrayformula({C1}*12) questo schema si ripeteva 12 volte. Ciò mi consentirebbe anche di avere una formula dinamica, come =arrayformula({C1}*count(D:D)) in cui il pattern si ripeterebbe secondo alcune variabili.

Avete ideia su come raggiungere tale utilizzando solo la formula originaria (javascript)?

risposta

6

avrei usato split() funzione invece di ARRAYFORMULA() e la funzione REPT() per ripetere posizioni cellulari. Ad esempio, se il n = 4 la formula sarà simile a questa:

=split(rept(C1&";",4),";") 

REPT() ripete posizione della cella C1 + virgola quattro volte creando una stringa e split() funzione divide stringa creata da punto e virgola a cellule orizzontali.

È possibile ruotare portato tavola orizzontale a tavola verticale mediante trasposizione) la funzione (:

=transpose(split(rept(C1&";",4),";")) 

E sì, è possibile utilizzarlo per creare formule dinamiche con l'aiuto di ARRAYFORMULA() Funzione:

=arrayformula(count(D:D)*split(rept(C1&";",4), ";")) 
+0

Funziona come un fascino !!! GRAZIE!!!!!!!!! – user3347814

+0

Ben fatto, signore! – Erutan409

+0

Bene, questa soluzione richiede che i tuoi dati siano di testo e che non contengano il separatore che usi ... – Olexa

Problemi correlati