Questione : I valori di Sumarize TopN dai totali correnti nella persona alta un dato numero di piedi del gruppo del cristallo segnala 2008

Il signore/signora,

I vuole ricapitolare i tre valori principali trovati nell'oggetto che di totale corrente ho nella persona alta un dato numero di piedi del gruppo del mio rapporto di cristallo e dispone quell'importo totale nella persona alta un dato numero di piedi di rapporto.  Posso avere venti gruppi, ma voglio soltanto aggiungere i 3 valori principali trovati nel totale che corrente ho generato nella persona alta un dato numero di piedi di rapporto.  So che questa è edizione valutazione \ a più stadi - ma certamente questo può essere done.
class= del

Risposta : I valori di Sumarize TopN dai totali correnti nella persona alta un dato numero di piedi del gruppo del cristallo segnala 2008

Ancora penso che la mia idea dovrebbe funzionare, ma finchè avete trovato una soluzione.

 > Dico grossolano, perché ogni volta che voglio cambiare
 > valore che di TopN devo ottenere occupato cambiando molta formula:

 È “il cambiamento il valore di TopN„ che si riferisce a quant0 dei valori superiori volete aggiungere insieme, o forse appena quanti gruppi sono nel rapporto?  Il uno o il altro senso, non deve essere un problema (fino ad un punto).

 La vostra prima formula usa Redim per fissare il formato dell'allineamento a 4 e quella non è cambiata mai nelle formule che avete inviato.  Se il vostro rapporto ha più di 4 gruppi, otterrete un errore subscript.  Forse state facendo qualcosa che non abbia mai più di 4 gruppi su un rapporto, come i 4 quarti durante un anno.  Altrimenti, dovreste tenere conto più gruppi.

 Il one-way da trattare che sarebbe di aumentare semplicemente il numero nel Redim al numero massimo dei gruppi che lo pensate avrà mai su un rapporto.  Un'opzione più dinamica è di aumentare secondo i bisogni il formato dell'allineamento.  Per fare quello, cambiare appena la vostra seconda formula come segue:

//array valuta nella persona alta un dato numero di piedi del gruppo
WhilePrintingRecords;
allineamento numberVar RT;
se GroupNumber > allora conta (RT)
  Conserva RT [GroupNumber] di Redim;
RT [GroupNumber]: = tonumber ({#period lordo});


 Quello usa appena la conserva di Redim per ampliare il RT se necessario.  L'opzione della conserva mantiene il soddisfare corrente (tutti valori memorizzati fino a quel punto).

 Se il numero dei gruppi sul rapporto sia una preoccupazione, questo dovrebbe prendere la cura di esso, fino ad un punto.  La limitazione qui è che un allineamento può soltanto avere 1000 elementi, in modo da se avete mai un rapporto con più di 1000 gruppi, che saranno un problema.  Ma poiché il limite using le vostre formule correnti è 4, sto indovinando che un limite di 1000 probabilmente non sarà un problema.  : -)


 Se siete interessato circa il cambiamento delle formule per aggiungere insieme qualcosa tranne i 3 valori principali, quello è qualcosa che dovreste occuparti di, ma potete facilitarli.  Mentre è ora, la formula di finale fascicola i valori nell'allineamento da il basso a il su ed aggiunge insieme i 3 valori finali e funziona soltanto se ci sono esattamente 4 gruppi sul rapporto (che li porta di nuovo a quella domanda più iniziale, fa il vostro _always_ di rapporto gli hanno 4 gruppi?).  Potete facilitare che una punta fascicolando i valori da il più su a il più basso ed aggiungendo insieme i primi 3 valori.  Quel senso non importa quanti elementi sono nell'allineamento (IE. quanti gruppi sono sul rapporto).  Aggiungere appena insieme i primi elementi di N per ottenere il vostro totale.  Quello è discutibilmente poco un più semplice dell'aggiungendo insieme l'ultimo N.

 Per fascicolare l'allineamento da il più su a più basso, cambiare appena questa linea nella formula finale

se RT [counter2] > RT [counter2 + 1] allora

   a questo

se RT [counter2] < RT="">
 IOW, cambiano > a <>
 Allora cambiare l'ultima linea a:

aggiungere: = RT [1] +RT [2] +RT [3]


 FWIW, è una cosa molto secondaria, ma la variabile di aggiunta nei servire di quella formula nessun obiettivo reale.  Potreste dimenticare appena che esso e la linea finale potrebbero essere:

RT [2] +RT [3] +RT [4] // la vostra formula originale

RT [1] +RT [2] +RT [3] // la mia versione


 Inoltre, quando vi siete riferito “a cambiare molta formula„, siete forse formule usando come quelle che abbiate inviato per aggiungere insieme i valori del topN per più di un campo e stavate parlando di cambiando le formule per tutti quei campi se voleste cambiare la N?

 In caso affermativo, potreste facilitare quello mettendo la N in una formula ed utilizzando quella formula nelle formule che aggiungono insieme i valori.  Per esempio, generare una formula chiamata topN che dice appena

3

 Un'altra opzione sarebbe di mettere i 3 in una variabile nella formula nella vostra intestazione di rapporto.  Il uno o il altro senso, allora utilizzereste quelle formula/variabile nella vostra formula finale.  Come usate dipenderà da come il vostro allineamento è fascicolato.  Se la fascicolate nell'ordine discendente, ho suggerito, quindi volete aggiungere insieme i primi valori di N e potreste sostituire appena la linea finale della formula finale con questa:

se {@topN} < Array="">  conserva RT di Redim [{@topN}];
Somma (RT)

 Quello dice appena che se l'allineamento gli fa più volere elementi (per esempio gli fa soltanto 4 elementi e volere il 3) principale, quindi usa la conserva di Redim per rendere l'allineamento più piccolo, scartando i valori indesiderabili.  Se l'allineamento realmente gli fa pochi volere elementi (per esempio ha 3 elementi e volere il 4) principale, esso non importunate con il Redim.  Nessun punto nell'aggiunta dei più elementi che saranno appena 0.
 Allora usa appena la somma per aggiungere insieme ciò che resta nell'allineamento.

 Realmente, anche se non usate la formula del topN/idea variabile, questo potrebbe essere un buon senso trattare il cambiamento del numero dei valori per aggiungere.  Le ultime linee hanno potuto essere:

se conserva < Array="">  RT [3] di 3 Redim;
Somma (RT)


 Se volete cambiare i quanti valori si aggiungono, cambiare appena quei due 3 al nuovo valore.


 APPROVAZIONE, indovino che dovrebbe darlo abbastanza per masticare sopra.  : -)

 James
Altre soluzioni  
 
programming4us programming4us