Stellar Blade Un'esclusiva PS5 che sta facendo discutere per l'eccessiva bellezza della protagonista. Vieni a parlarne su Award & Oscar!
 
Pagina precedente | 1 2 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Formula per ricavare quantità esplosa da una distinta base a più livelli

Ultimo Aggiornamento: 05/02/2020 10:23
Post: 18
Registrato il: 11/03/2019
Città: CASTELNUOVO RANGONE
Età: 38
Utente Junior
excel 2011
OFFLINE
28/01/2020 17:20

Buongiorno ho un dilemma abbastanza intricato, devo compilare le celle in rosa in colonna E creando una formula che mi dia il risultato in colonna M.

Non so se qualcuno è esperto di distinte base, ma il mio obiettivo è di creare un automatismo che mi permetta di avere la logica dei livelli 1.2.3.4.5.6. etc...

Ovvero partendo dalla quantità legame voglio ottenere la quantità esplosa in base al livello precedente.
Le celle in blu e in giallo sono al primo livello quindi basta copiare la quantità legame e non c'è problema ma il difficile arriva con i livelli successivi.

Esempio nell'immagine allegata : le celle arancioni al livello 3 fanno riferimento alla prima cella arancione al livello 2 che ha quantità legame 2 , quindi tutte le quantità legame di queste celle vanno moltiplicate per 2 per ottenere la quantità esplosa.

Il problema è che ho un file con 20 000 righe solo con la quantità legame e vorrei ottenere un automatismo che mi permetta di ottenere la quantità esplosa.

Sto impazzendo. Potete aiutarmi?

Grazie mille
Vi allego il file
Post: 4.209
Registrato il: 13/03/2012
Città: LIVORNO
Età: 78
Utente Master
2010
OFFLINE
28/01/2020 17:43

Secondo me dovresti proporre un esempio più semplice, un gruppo composto da 2 sottogruppi composti a sua volta da pochi particolari e poi spiegare bene in modo da far capire anche a chi non ha mai visto una distinta base. Sul forum trovi esperti di excel non esperti disegnatori

----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Post: 18
Registrato il: 11/03/2019
Città: CASTELNUOVO RANGONE
Età: 38
Utente Junior
excel 2011
OFFLINE
29/01/2020 08:46

Io avevo applicato questa regola :

cella verde : è il livello 0. no problem. quindi qtà esplosa = 1
celle blu : sono tutti i livelli 1 a qtà legame = 1. no problem. quindi qtà esplosa = 1
celle gialle: sono tutti i livelli 1 con qtà legame diversa da 1. no problem. quindi qtà esplosa = qtà legame.

il problema nasce sulle celle in rosa. io avevo provato ad utilizzare una colonna di appoggio dove ( celle bianche colonna E) riportavo il valore della cella di sopra e successivamente in colonna D andavo a moltiplicare questo valore in colonna E per la qtà esplosa (solo celle rosa).

Questo funziona parzialmente. Nel caso in cui ho un componente a livello 2 con quantità legame >1 però non funziona perchè tutti i componenti al suo interno (livello 3 ad esempio) andrebbero moltiplicati per 2. Esempio righe identificate celle in arancione.

In colonna "P" ho riportato le differenza tra il mio ragionamento e come invece dovrebbe essere. Non riesco proprio a trovare un semi-automatismo che mi risolva il dilemma.



Riallego il file.
E' molto intricato anche da spiegare :(
29/01/2020 13:50

Mi sono informato in rete cosa significa: legame, esplosa e distinte base...
Tanto per sapere di cosa si trattava, forse qualcosa ho capito mà non sono sicuro. Avrei alcune domande da fare:
1) Le colonne A:D = OK, le colonne I:M sono una Tua aggiunta???
2) Mi spieghi il valore della colonna J (esiste un nesso con la Tua richiesta)
3) OK per celle Verdi (0),Blu (.1), Gialle (..2)
4) Riga10-Riga18 - Tutte le righe sotto fanno parte delle celle da raddoppiare, purchè c10 sia maggiore di 1 (anche la riga10 da raddoppiare?).
NB. Significa che riga19-riga30 sarebbero da raddoppiare se C19 fosse maggiore di 1??? Giusto? Idem per riga6-riga7? La riga125 =0,02714 non è maggiore di 1 ???
Ora per riga31-riga41 (sempre che C31 fosse maggiore di 1) cosa succede se trova un (....4)?

Ps. Ammettiamo che l'ordine sia sacrosanto, analizzare 1000/10000 righe e fattibile per il VBA però bisogna "istruirlo bene" sul cosa fargli fare.
Nell'allegato controlla le prime 77 righe rosse se va bene, in caso d'errori fai esempi
Post: 19
Registrato il: 11/03/2019
Città: CASTELNUOVO RANGONE
Età: 38
Utente Junior
excel 2011
OFFLINE
29/01/2020 14:42

Intanto grazie mille per l'aiuto.
1) Le colonne I-M si sono una mia aggiunta come esempio per fare capire ciò che voglio ottenere , che è la colonna con la quantità esplosa in colonna M.

2)La colonna J sinceramente non la conosco, ma forse potrebbe tornare in utile? non conosco la logica di quella colonna quindi l'ho ignorata.

3)ok

4)esatto, da raddoppiare se la quantità legame di c10 = 2 , da triplicare se uguale a 3 etc.. Il risultato da ottenere è quello in colonna M. C10 in questo caso è ok cosi.
Se trova un 4 il ragionamento dovrebbe essere analogo a quello descritto tra i livelli 2 e 3. Quindi il 4 deve dipendere dal livello 3 come il livello 3 dipende dal livello 2.

Ho controllato le righe rosse ma sinceramente il risultato non è quello di colonna M. esempio nelle righe 11-18.
L'obiettivo è quello di avere un valore come in colonna M (faccia finta che non ce l'abbia. l'ho riportata solo come esempio del risultato da ottenere) partendo dalle colonne A-B e C. Le colonne E e F sono prove (inutili :( ) che ho fatto io.

Grazie di cuore.

29/01/2020 16:04

Non hai detto, quando in colonna C esiste un numero simile 0,02714 (cosa fare ???)
Se in colonna C=1 (0,.1,..2 saranno sempre uguali), se invece C=2 moltiplico la riga dopo solo se sarà superiore (ex ...3=OK) Esempio con alcune righe:
0 Uguale a C
.1 Uguale a C
..2 Uguale a C, mà siccome in C = 2 moltiplico la prossima riga se superiore
...3 = per due (vedi che la prossima riga è inferiore)
..2 Uguale a C (mà per esempio nella stessa riga C = 3)
...3 = per tre
...3 = per tre (siccome la prossima sarà superiore, prendo in esame pure il valore in C)
....4 = per il valore dell'ultimo (...3) Giusto? NB Adesso diminuiscono...
...3 = per cosa? Il valore del due precedente oppure sarà uguale a C ???
30/01/2020 03:47

NB. Comunque il Tuo elenco mi sembra errato (intendo righe fuori posto).
Partendo da 0=Padre, ci saranno solo numeri a salire (tranne nei cambi scheda)
Non dovrebbero esserci riga546-557 con tutti 1

Vedi Foglio3 e casomai confronta pure Foglio2
Post: 20
Registrato il: 11/03/2019
Città: CASTELNUOVO RANGONE
Età: 38
Utente Junior
excel 2011
OFFLINE
30/01/2020 08:49

Purtroppo non funziona perchè il risultato non da quello in colonna M del primo foglio.

l'elenco è corretto comunque perchè viene fuori da un sistema gestionale, è solo un estrazione.

Si comunque ci possono essere anche righe con tutti 1. non c'è una regola su quanti 1 o su come sia composto l'1 (con dei 2 e con dei 3 e con dei 4 etc..).

Le regole sono che i numeri n+1 dipendono dal numero n.

Forse mi sto spiegando male io.
Nei fogli 2 e 3 ti ho fatto un controllo e segnato in rosso il delta le celle che non tornano , delta tra tua colonna e risultato da ottenere.

ps: se esiste un numero minore di 1 deve cmq seguire il ragionamento dei livelli se qtà legame 1 allora va moltiplicato x1 se x2 va moltiplicato x2 etc..
Non devono cmq mai diminuire, mal che vada devono rimanere = alla qtà legame.



ti allego file
Post: 5.827
Registrato il: 14/11/2004
Utente Master
Office 2019
OFFLINE
30/01/2020 09:50

distinta base
Ciao Francesco, vediamo se riesco a capire bene il problema

ad i miei tempi quando avevo una distinta base c'era il codice principale che racchiudeva tutti gli altri, e quando immettevo la quantità del codice principale in automatico, i codici figli si comportavano di conseguenza aumentando le quantità in base al codice principale.

ora tu hai questa distinta sai separare i vari codici figli ed i codici relativi.

perche dal tuo elenco non riesco a capire i codici appartenenti ad i codici figli, una volta fatto questo puoi fare tutte le esplosioni e calcoli che vuoi

ho capito solo che il verde è quello principale che racchiude tutto, è cosi?.

fai sapere, ciao By sal [SM=x423051]

[Modificato da by sal 30/01/2020 09:51]
se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
Post: 21
Registrato il: 11/03/2019
Città: CASTELNUOVO RANGONE
Età: 38
Utente Junior
excel 2011
OFFLINE
30/01/2020 10:41

Si il verde è il principale .
poi ci sono tutti i figli al 1 livello.
Questi figli al 1 livello possono essere composti da altri livelli.

Esempio:
Codice principale : livello 0
Figlio A a livello 1
Figlio B a livello 1
Figlio B1 a livello 2
Figlio B2 a livello 2
Figlio B2.1 a livello 3
Figlio B3 a livello 2
Figlio B3.1 a livello 3
Figlio B3.1.1 a livello 4
Figlio B3.1.2 a livello 4
etc..

In base al legame dei livelli occorre calcolare quantità esplosa

Many thanksss
30/01/2020 12:06

Scusami...
Riga59 .1 15.8018.0001/C 2 OK (non moltiplico perchè figlio1)
Riga60 ..2 60.0701.0011/02 1 (perchè dovrebbe essere 2?)
Dopo...
Riga280 ..2 14.0103.257 2 OK moltiplico per due la prossima
Riga281 ...3 14.0103.190/A 1 OK = 2
Riga282 ....4 13.1301.222/E 1, perchè devo moltiplicarlo se la precedente era 1 ???
Post: 22
Registrato il: 11/03/2019
Città: CASTELNUOVO RANGONE
Età: 38
Utente Junior
excel 2011
OFFLINE
30/01/2020 12:43

MIE RISPOSTE SOTTO :

Riga59 .1 15.8018.0001/C 2 OK (non moltiplico perchè figlio1)

ESATTO

Riga60 ..2 60.0701.0011/02 1 (perchè dovrebbe essere 2?)

Perche il 60.0701.0011/02 è contenuto dentro il 15.8018/0001/c . Del 15.80018.0001/c ce ne sono 2(qtà legame=2), quindi la qtà esplosa deve essere 2

Dopo...
Riga280 ..2 14.0103.257 2 OK moltiplico per due la prossima
Riga281 ...3 14.0103.190/A 1 OK = 2

Riga282 ....4 13.1301.222/E 1, perchè devo moltiplicarlo se la precedente era 1 ???

Il 13.1301.222/e va moltiplicato perchè il 14.0103.190/a è contenuto a sua volta nel 14.0103.257 che ha quantità legame =2.

30/01/2020 15:47

Risposta >>> Perche il 60.0701.0011/02 è contenuto dentro il 15.8018.0001/c
Però io ed Excel non sappiamo di questi abbinamenti

Forse ha ragione by sal, devi preparare un foglio con i vari figli/figliastri.
Intendo in colonna A il Padre, colonna B tutti i figli_1, colonna C tutti i figli_2 ecc ecc, oppure farci sapere come capire che 60.0701.0011/02 è contenuto in 15.8018.0001/c. Idem per il 13.1301.222/E + tutti gli altri

Ps. Il quesito è diventato difficile, forse non riesco.
Post: 23
Registrato il: 11/03/2019
Città: CASTELNUOVO RANGONE
Età: 38
Utente Junior
excel 2011
OFFLINE
30/01/2020 16:17

In realtà lo si capisce guardando la colonna con il livello.

Esempio:
Codice principale : livello 0

Figlio A a livello 1
Figlio B a livello 1
Figlio B1 a livello 2 ( b1 è dentro b)
Figlio B2 a livello 2 ( b2 è dentro b)
Figlio B2.1 a livello 3 (b2.1 è dentro b2)
Figlio B3 a livello 2 (b3 è dentro b)
Figlio B3.1 a livello 3 ( b3.1 è dentro b3)
Figlio B3.1.1 a livello 4 (b3.1.1 è dentro b3.1)
Figlio B3.1.2 a livello 4 (b3.1.2 è dentro b3.1)

etc.

Cosa è dentro cosa lo si intende guardando la colonna con i livelli.
Non è molto chiaro spiegato cosi?
31/01/2020 08:09

Mi spiace, non capisco dove sia il nesso trà (15.8018.0001/c) e l'elenco sopra "descritto"
Già con un'allegato di figli/figliastri sarebbe difficile abbinarli tramite VBA
Per adesso mi fermo e lascio il quesito ad altri esperTi
Post: 0
Registrato il: 27/12/2016
Città: SIENA
Età: 50
Utente Junior
Office 2019/Office 365
OFFLINE
03/02/2020 20:23

Re:
Ho provato a impostare il file, sicuramente c'e' una soluzione più elegante.

Ho aggiunto nella colonna N il livello (ho usato un campo numerico perché più semplice da gestire e per utilizzare la funzione scegli)

Nelle colonne P, S, V, Y, AB, AE e AH il riferimento alla riga a seconda del livello

Nelle colonne R, U, X, AA, AD, AG il riferimento alla riga del livello superiore.

Nelle Colonne Q, T, W, Z, AC, AF e AI il valore totale

Nella Colonna AI ho raggruppato il valori.

Mi sembra che tutti i valori siano come quelli richiesti.




---
pensa bene a quello che cerchi, allega un file di esempio, prova il registratore di macro, imparerai e potresti già avere la soluzione
04/02/2020 03:51

Forse non capisco ancora...
Ho visto l'allegato (complimenti alle Tue formule)
Mà adesso mi sorge un dubbio, se in colonna AK hai già i risultati

Perchè hai creato questo post???
Forse il motivo è che per ogni "oggetto differente" cambiano i vari livelli?
Basterebbe inserire tante altre colonne. Non si può? In questo caso vedrò come fare (spero)

Ps. In colonna N =_xlfn.IFS(A4=.......
Non è una formula Excel (anche se si vede un numero), sicuramente esportato da un programma, mà quella formula se vai in N4 (alla fine formula) e premi invio succede un bel casino (Tu l'hai modificata ed in quale modo)?
Post: 24
Registrato il: 11/03/2019
Città: CASTELNUOVO RANGONE
Età: 38
Utente Junior
excel 2011
OFFLINE
04/02/2020 09:05

Duccio grazie, il problema è che mi servirebbe un automatismo xke ho 20 000 righe che possono essere di ogni tipo di ogni livello.

In modo che attacco le colonne fino alla qtà legame e in automatico con un clic mi compare una colonna con la qtà esplosa.

Cosi è manuale e su 20 000 righe diventa impegnativo.
Grazie x lo sforzo che hai fatto.
Gentilissimo
Post: 1
Registrato il: 27/12/2016
Città: SIENA
Età: 50
Utente Junior
Office 2019/Office 365
OFFLINE
04/02/2020 09:38

Ciao Francesco,
non ho capito.
se i livelli sono al massimo 6 è sufficiente inserire le formule e copiarle fino all'ultima riga.

Oppure potresti creare un file con solo le colonne da N in poi e copiare di volta in volta i dati di ingresso

Oppure potresti creare una macro sulla base del file che ho compilato

PS la colonna N contiene la formula più.se() presente in office2016, può essere sostituita con una serie di se() annidati


---
pensa bene a quello che cerchi, allega un file di esempio, prova il registratore di macro, imparerai e potresti già avere la soluzione
Post: 25
Registrato il: 11/03/2019
Città: CASTELNUOVO RANGONE
Età: 38
Utente Junior
excel 2011
OFFLINE
04/02/2020 11:19

Si in effetti potrei fare cosi , vero.. ma se dovessi aggiungere anche i livelli 7 e 8 è molto incasinato da rifare? :(
Post: 26
Registrato il: 11/03/2019
Città: CASTELNUOVO RANGONE
Età: 38
Utente Junior
excel 2011
OFFLINE
04/02/2020 11:34

Pero sai che ho provato a incollare le colonne del mio file e non funziona ? mi da tutto rif... secondo me c' è qualche errore sul livello 2?

in pratica ho incollato in giallo in colonna c la qta legame
in colonna N i livelli sempre in giallo

e in arancione in colonna M il risultato da ottenere ( come riferimento x fare poi il controllo)

ma mi sa che c è qualcosa che non va..
Post: 2
Registrato il: 27/12/2016
Città: SIENA
Età: 50
Utente Junior
Office 2019/Office 365
OFFLINE
04/02/2020 12:29

La colonna N ha preso i valori del livello e non la formula più.se() e quindi i riferimenti saltano (dovrebbe dipendere dalla tua versione di excel). Nella nuova versione ha sostituito con i se() annidati.

Se ho capito bene come funziona la distinta sembra che ci sia un problema dalla riga 98 del tuo file (101 nel mio) perché i valori cumulati non sembrano corretti (ad esempio se nella riga 97 ho 8 volte il codice 98.0000.510 e sotto il 13.7601.034/A per 2 volte ognuno, la quantità totale dovrebbe essere 16 e non 2)

prova a vedere se questa versione visualizza tutti le celle come formula e non come valore


[Modificato da duccio.73 04/02/2020 13:20]
---
pensa bene a quello che cerchi, allega un file di esempio, prova il registratore di macro, imparerai e potresti già avere la soluzione
04/02/2020 12:46

Complimenti a duccio.73
Chiedo scusa, se ho frainteso la Tua risposta con l'autore del post

Ps. _xlfn.IFS "sarebbero tanti se insieme per versioni inferiori a 2016". OK

Se tutto funziona sarebbe giusto aumentare le colonne sino arrivare ad 20 livelli, perchè tramite VBA personalmente io non vedo altri modi.
Post: 27
Registrato il: 11/03/2019
Città: CASTELNUOVO RANGONE
Età: 38
Utente Junior
excel 2011
OFFLINE
04/02/2020 12:53

Ho provato a fare come mi hai detto , attaccando i miei dati e replicare le formule , poi ho aggiunto un controllo nell'ultima colonna a destra ma non funziona :(

dove sbaglio?
Post: 28
Registrato il: 11/03/2019
Città: CASTELNUOVO RANGONE
Età: 38
Utente Junior
excel 2011
OFFLINE
04/02/2020 12:56

ecco il file, l ho un po troncato xke era too big
Post: 3
Registrato il: 27/12/2016
Città: SIENA
Età: 50
Utente Junior
Office 2019/Office 365
OFFLINE
04/02/2020 13:07

Ciao Francesco,
sinceramente mi sembra che ci sia un problema nei valori immessi e non nelle formule (per esempio nella riga 6 il codice è in quantità 2 ma la quantità esplosa di controllo è 1, nella 32 il codice è in quantità 3 mentre hai messo come quantità esplosa 1).


---
pensa bene a quello che cerchi, allega un file di esempio, prova il registratore di macro, imparerai e potresti già avere la soluzione
Post: 29
Registrato il: 11/03/2019
Città: CASTELNUOVO RANGONE
Età: 38
Utente Junior
excel 2011
OFFLINE
04/02/2020 13:24

eh si hai ragione .. avevo sbagliato io a incollare ... cavolo sei un grande. sei un mostro !!!ti posso chiedere un'ultima cosa.. come faccio se arrivo a 8 livelli, puoi aggiungermi altre colonne??

e per alleggerire un po il file cosa mi consigli?
magico!!

grazie
Post: 4
Registrato il: 27/12/2016
Città: SIENA
Età: 50
Utente Junior
Office 2019/Office 365
OFFLINE
04/02/2020 14:29

Allegato trovi il file con 8 livelli, nel caso siano necessari altri livelli è necessario aggiungere le colonne e copiare le formule aggiustando i riferimenti.

Per alleggerire il file non saprei, come ho detto ci sarà una soluzione più elegante, probabilmente trasformando tutte le celle in una macro potresti renderlo più reattivo, però quando posso evito le macro perché il tempo di debug è maggiore e anche meno immediato

Controlla il formato del livello 7 e 8 (cambio puntini ecc) e un po' di volte il funzionamento perché non ho avuto modo di testarlo
---
pensa bene a quello che cerchi, allega un file di esempio, prova il registratore di macro, imparerai e potresti già avere la soluzione
Post: 30
Registrato il: 11/03/2019
Città: CASTELNUOVO RANGONE
Età: 38
Utente Junior
excel 2011
OFFLINE
04/02/2020 14:49

Scusa il disturbo , ho fatto una prova sulle mie 20000 righe e mi torna tutto a parte l ultima riga e un altra uguale ( che ora ho cancellato da li in poi x dimensioni invio file). come mai? è l'ultima gialla in fondo.

e poi ovviamente dove ho i livelli 7 e 8 ma non essendoci le formule sono giustificate
Post: 31
Registrato il: 11/03/2019
Città: CASTELNUOVO RANGONE
Età: 38
Utente Junior
excel 2011
OFFLINE
04/02/2020 14:49

Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 2 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 22:04. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com