Metodi di distribuzione dei valori in valori di celle consolidate

I comandi Splasher consentono di eseguire il writeback di valori in celle consolidate, con il simbolo cancelletto (#). In uso, il nome di ogni comando Splasher viene abbreviata con una sola lettera, ad esempio C (Copia) o L (Simile a).

Se un valore di testo scritto in una cella inizia con una di queste lettere oppure con il simbolo # oppure contiene il nome completo di un comando Splasher, il valore potrebbe essere stato analizzato in modo non corretto, come comando Splasher. In questo caso, nella cella viene visualizzato #REF!.

Se il valore da scrivere in una cella è sempre di testo e non è mai una data o un numero, è possibile evitare questo problema aggiungendo due apostrofi davanti al valore. Il primo apostrofo garantisce che la stringa non venga interpretata come numero o come data o ora. Il secondo apostrofo garantisce che la stringa non venga interpretata come comando Splasher.

Il problema si verifica soltanto con i valori cella, non con le note cella o gli attributi, ad esempio. Questa situazione si verifica solo se è attivato lo splashing.

Esempio

Questa formula parziale CELLWRITE è destinata a scrivere il valore C2019-20 in una cella.
=CELLWRITE("C2019-20","DEPM","BPCCONFIG_CYCLE","...

Tuttavia, C viene interpretato come un comando COPY e viene restituito un errore #REF!.

L'aggiunta di due apostrofi dopo le virgolette di apertura indica al parser che il valore non è un comando Splasher e non è un numero o una data:

=CELLWRITE("''C2019-20","DEPM","BPCCONFIG_CYCLE","...

Alloca e Modifica

Per ciascun metodo di writeback è possibile specificare l'allocazione o la modifica di valori.

L'opzione Alloca consente di sostituire i valori esistenti. Se, ad esempio, in una cella è contenuto il valore 1 e nella cella viene scritto il valore 2 utilizzando l'opzione Alloca, il valore della cella diventerà 2.

L'opzione Modifica consente di modificare i valori esistenti immettendo un valore diverso. Se, ad esempio, in una cella è contenuto il valore 1 e viene immesso il valore 2 utilizzando l'opzione Modifica, il valore della cella diventerà 3.

I comandi dell'opzione Modifica presentano come prefisso la "e" commerciale (&).

Metodi e comandi di writeback

Per impostazione predefinita, i metodi di writeback sono metodi additivi, ovvero incrementano in vari modi i valori esistenti. È possibile modificare la sintassi di ciascun metodo di writeback per sottrarre valori e specificarli tramite una percentuale.

Negli esempi di sintassi di allocazione Ponderata, Uniforme, Di base e di tipo Simile a riportati in questa sezione è possibile anteporre il segno meno (-) a [valore] per la scrittura di valori negativi. È inoltre possibile aggiungere il segno di percentuale (%) per la modifica dei valori in base a un valore percentuale.

Ad esempio:
Sintassi Spiegazione
&W20 Aggiunge 20 al valore della cella.
&W-20 Sottrae 20 dal valore della cella.
&W5% Incrementa il valore della cella del 5%.

Il segno più (+) è implicito, ma è possibile renderlo esplicito, ad esempio &W+20. Ciascun metodo di writeback supporta due o tre tipi di sintassi. Ad esempio, #W[value] e #@[value] sono equivalenti. Gli esempi che contengono nomi specifici di elementi e dimensioni si basano sull’applicazione di esempio.

Weighted (Ponderata)

Le proporzioni reciproche dei valori figlio sono mantenute quando il valore dei rispettivi elementi padre viene incrementato o diminuito.

Allocazione ponderata: #W[value]

Se si utilizza l'allocazione ponderata per scrivere un valore in una cella padre che, ad esempio, è il doppio del valore esistente, anche il valore di ciascuna cella figlio viene raddoppiato.

Modifica ponderata: &W[value]

Se si utilizza la modifica ponderata per scrivere un valore in una cella padre che, ad esempio, è il doppio del valore esistente, il valore di ciascuna cella figlio viene raddoppiato e aggiunto al valore esistente.

Esempio

Il valore della cella padre è 9 e il valore di ciascuna delle tre celle figlio è 3. Scrivere 18 nella cella padre con la modifica ponderata. Il valore di ciascuna cella figlio verrà raddoppiato e aggiunto al valore esistente. Il valore di ciascuna cella figlio pertanto diventerà 9. Il valore della cella padre diventerà 27.

Uguale a

I valori immessi nelle celle padre vengono distribuiti uniformemente nelle rispettive celle figlio.

Allocazione uniforme: #E[value]

Un valore immesso in una cella padre sostituisce il valore esistente e viene distribuito uniformemente tra le celle figlio.

Esempio

A una cella padre appartengono tre celle figlio. Se si utilizza l'allocazione uniforme, nella cella padre verrà scritto il valore 12. Il valore di ciascuna cella figlio diventerà 4.

Modifica uniforme: &E[value]

Un valore immesso in una cella padre viene distribuito uniformemente tra le celle figlio e aggiunto al valore esistente.

Esempio

Il valore della cella padre è 12. Sono presenti tre celle figlio, ciascuna con un valore 4. Scrivere 12 nella cella padre con la modifica uniforme. Il valore 12 verrà distribuito uniformemente a ciascuna cella figlio e aggiunto al valore esistente. Il valore di ciascuna cella figlio diventerà 8. Il valore della cella padre diventerà 24.

Di base

Un valore scritto in una cella padre viene riportato in ciascuna cella figlio. Il valore della cella padre viene aggiornato.

Allocazione di base: #B[value]

Un valore scritto in una cella padre viene riportato in ciascuna cella figlio e sostituisce il valore esistente.

Esempio

A una cella padre appartengono tre celle figlio. Se si utilizza l'allocazione di base, nella cella padre verrà scritto il valore 2. Il valore di ciascuna cella figlio diventerà 2. Il valore della cella padre diventerà 6.

Modifica di base: &B[value]

Un valore scritto in una cella padre viene riportato in ciascuna cella figlio e aggiunto al valore esistente.

Esempio

A una cella padre appartengono tre celle figlio. Il valore di ciascuna cella figlio è 2. Di conseguenza, il valore della cella padre è 6. Scrivere 2 nella cella padre con la modifica di base. Il valore 2 verrà scritto in ciascuna cella figlio e aggiunto al valore esistente. Il valore di ciascuna cella figlio diventerà 4. Il valore della cella padre diventerà 12.

COPY

È possibile copiare i valori da un'area a un'altra di un cubo, ad esempio le cifre effettive di un anno all'interno del budget di un altro anno. In questo esempio le cifre effettive costituiscono l'origine e il budget la destinazione.

Scrivere il comando Copy nella cella di destinazione. Nel comando vengono specificate esclusivamente le dimensioni e gli elementi che distinguono l'area di origine del cubo dall'area di destinazione. Se gli elementi appartengono univocamente a una dimensione specifica, è sufficiente specificare gli elementi.

Copy - allocazione: #C[Tuple]

Copy - modifica: &C[Tuple]

Una tupla è l'indirizzo di un'area specifica del database. In questo caso la tupla è costituita dall'indirizzo dei dati da copiare. Per specificare la tupla, è consigliabile utilizzare nomi univoci per gli elementi.

I valori copiati da un'area a un'altra di un cubo sostituiscono i valori esistenti.
Nota

quando gli elementi di origine e di destinazione sono entrambi elementi consolidati (C) o elementi di base (N), per l'esecuzione del comando COPY con allocazione viene utilizzato External Weighted Basic come metodo di writeback specifico per OLAP. Nel caso di elementi C, la struttura degli elementi sottostanti deve essere simile. In altri termini, gli elementi di origine e di destinazione devono avere lo stesso numero di elementi figlio, nipoti e così via. Negli altri casi viene utilizzato il metodo External Weighted.

Per il comando COPY con modifica viene utilizzato External Weighted Delta come metodo di writeback.

Esempi

Si vogliono copiare i valori effettivi del quarto trimestre del 2006 nel budget relativo allo stesso trimestre. Selezionare la cella contenente le cifre budget per il trimestre in questione e immettere:

#COPY [VALTYPE].[Varianza].[Effettivi];[PERIOD].[Tutti gli anni].[2006].[2006_Q4]

Si vogliono copiare i valori effettivi del terzo trimestre del 2006 per la Germania nel budget relativo allo stesso trimestre del 2006 per la Francia.

Selezionare la cella contenente il budget del quarto trimestre per la Francia e specificare quanto segue:

#COPY [REGION].[Tutte le regioni].[Europa].[Germania];[VALTYPE].[Varianza].[Effettivi];[PERIOD].[Tutti gli anni].[2006].[2006_Q3]

COPYFULL

Il comando COPYFULL funziona allo stesso modo di COPY, ma copia anche i valori calcolati tramite regole.
Nota

per il comando COPYFULL con allocazione viene utilizzato External Weighted come metodo di writeback specifico per OLAP.

Per il comando COPYFULL con modifica viene utilizzato External Weighted Delta.

Elementi dati

Microsoft Analysis Services supporta gli elementi dati. Un elemento dati è una copia di un elemento padre ma senza lo stato di padre. È quindi possibile effettuare il writeback in un membro dati senza che questo abbia effetto sugli elementi figlio.

Esempio

Si supponga che in una gerarchia del personale il responsabile sia l'elemento padre. Se si pianifica lo stipendio del responsabile, è possibile eseguire il writeback di un valore nell'elemento dati Responsabile anziché nell'elemento Responsabile. In questo modo, gli stipendi degli altri dipendenti non influiranno su quello del responsabile né saranno influenzati da quest'ultimo.

Like (Simile a)

È possibile effettuare lo splashing dei valori negli elementi figlio di una cella consolidata nelle stesse proporzioni dei valori degli elementi figlio di un'altra cella consolidata.

Scrivere il comando Like nella cella di destinazione. Nel comando specificare esclusivamente le dimensioni e gli elementi che distinguono l'area di origine del database dall'area di destinazione. Se gli elementi appartengono univocamente a una dimensione specifica, non è necessario specificare esclusivamente gli elementi.

Nei comandi di writeback la lettera L indica l’opzione Like.

LIKE - allocazione: #L[value][Tuple].

LIKE - modifica: &L[value][Tuple]

Una tupla è l'indirizzo di un'area specifica del database. In questo caso, la tupla è l'indirizzo dell'area di origine del database.

Esempio

La cifra relativa alle vendite per il quarto trimestre in Spagna nel 2005 è 60. Le cifre per i singoli mesi sono ottobre 10, novembre 20 e dicembre 30.

Per visualizzare gli effetti delle vendite pari a 600 nel primo trimestre del 2006 in Italia (se distribuite nelle stesse proporzioni delle vendite 2005 del quarto trimestre in Spagna), selezionare la cella contenente le vendite del primo trimestre per l'Italia e immettere quanto segue:

#L 600 [REGION].[All Regions].[Europe].[Spain];[PERIOD].[All Years].[2005].[2005_Q4]

Le vendite del primo trimestre per l'Italia diventano 600 e le cifre per i singoli mesi diventeranno 100 per gennaio, 200 per febbraio e 300 per marzo.

#delete

Per eliminare tutti i valori da una sezione del database, specificare #delete in una cella contenente una formula di writeback, ad esempio WBC.

LIKEFULL

LIKEFULL combina LIKE e COPYFULL. In altri termini, consente di eseguire il writeback di un valore specificato, ma con il metodo "Ponderato esterno". La sintassi per l'allocazione è la seguente:

#LIKEFULL [value] [tuple]

Per una modifica la sintassi è indicata di seguito:

&LIKEFULL [value] [tuple]. Per il metodo di writeback viene utilizzato viene utilizzato External Weighted Delta.