Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Riordino mediante accoppiamento segni opposti in colonna

Ultimo Aggiornamento: 11/06/2021 10:42
Post: 13
Registrato il: 10/10/2018
Città: MILANO
Età: 46
Utente Junior
Microsoft Office 2013
OFFLINE
07/06/2021 22:27

Buonasera a tutti,
vi scrivo per chiedere a voi maghi di excel se esiste un modo per riordinare i dati di una colonna - che possono essere veramente molti - in modo che vengano gli stessi accoppiati in base allo stesso valore ma con segno opposto.
Esempio:
13
10
-5
4
-22
-13
11
-4
dovrebbe essere riordinato in:
13
-13
4
-4
10
-5
-22
11
A me interessa l'accoppiamento dei numeri identici ma con segno opposto che non devo eliminare ma devo barrare.


L'ordine dei restanti numeri in teoria dovrebbe rimanere uguale (salvo ovviamente considerare l'eventuale spostamento dei segni opposti).
Anticipatamente grazie a tutti per un aiuto!!


Versione Microsoft Excel per Microsoft 365
Post: 6.393
Registrato il: 14/11/2004
Utente Master
Office 2019
OFFLINE
08/06/2021 08:39

Ciao Premesso che il tuo tipo di ordinamento con gli ordinamenti di Excel "credo" non si possa fare,

ma una soluzione potrebbe essere con il VBA e riportare gli opposti su una nuova colonna e barrare gli originali nella colonna di partenza.

una soluzione



come vedi nella colonna originale sono barrati.

Ciao By Sal (8.D
se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
Post: 13
Registrato il: 10/10/2018
Città: MILANO
Età: 46
Utente Junior
Microsoft Office 2013
OFFLINE
08/06/2021 09:43

Ciao e grazie molte per la soluzione prospettata che potrebbe andar benissimo 😀 !!
Gentilmente mi sapresti dire cosa dovrei fare per implementarla?
Grazie mille a presto
Post: 6.394
Registrato il: 14/11/2004
Utente Master
Office 2019
OFFLINE
08/06/2021 10:16

Ciao Questa la macro

Sub Negativo()
Dim r, c, d, d1, x, y, t, list As New Collection

r = Cells(Rows.Count, 4).End(xlUp).Row
For x = 1 To r - 1
  d = Cells(x, 4)
  For y = x + 1 To r
    d1 = Cells(y, 4)
    If d1 = d * -1 Then
      list.Add d
      list.Add d1
      Cells(x, 4).Font.Strikethrough = True
      Cells(y, 4).Font.Strikethrough = True
    End If
  Next y
Next x

For x = 1 To list.Count
  Cells(x, 6) = list(x)
Next x
For x = 1 To list.Count
  list.Remove 1
Next x
End Sub


i numeri 4-6 sono le colonne D-F, nel caso le tue colonne siano differenti cambia i numeri.

ti allego il file delle prove

Ciao By Sal (8-D


[Modificato da by sal 08/06/2021 10:19]
se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
Post: 14
Registrato il: 10/10/2018
Città: MILANO
Età: 46
Utente Junior
Microsoft Office 2013
OFFLINE
08/06/2021 13:31

Ciao e innanzitutto grazie per l'aiuto che mi stai dando. Ho provato il codice e non mi sembra giri correttamente ma a causa mia ovvero non ho ahimè precisato che i numeri nella colonna possono essere ripetitivi (anche se ovviamente non accoppiati perfettamente) ovvero:
13
-11
-13
5
-13
-13
13
3
5
...

In questo caso per esempio dovrebbe rimanere non barrato, dei 13, solo un -13 (in pratica la prova del 9 è che la somma dei barrati in quella colonna deve sempre e comunque essere pari a 0) cosa che al momento non avviene dopo aver fatto qualche test. Credi che sia risolvibile la cosa?
Scusa ancora per l'imprecisione nella spiegazione e grazie ancora
Post: 6.395
Registrato il: 14/11/2004
Utente Master
Office 2019
OFFLINE
08/06/2021 15:23

Ciao per la verità mi ero posto il problema se esistevano doppioni.

a questo punto vale la pena di considerare solamente i numeri negativi tralasciando i positivi.

però cosa succede se un negativo non si azzera rimane non barrato?

domanda ha uno scopo tale confronto?.

ora trovo un metodo per la cosa.

Ciao By Sal
se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
Post: 1.412
Registrato il: 27/06/2011
Utente Veteran
excel 2007
OFFLINE
08/06/2021 18:05

Ciao Salvatore [SM=g27811]
non sono certo che solo i negativi
possano essere numericamente maggiori dei positivi.....

Quindi se fossero minori.... l'If nella macro, non dovrebbe elaborare
nessuna istruzione.

Ciao
Frank







Stretta la foglia, larga la via, dite la vostra che ho detto la mia.
Excel 2007 forse anche 2013 ... 2021 ... 365 e future...
Post: 15
Registrato il: 10/10/2018
Città: MILANO
Età: 46
Utente Junior
Microsoft Office 2013
OFFLINE
08/06/2021 19:15

Ciao, il senso del lavoro è quello di fare l'analisi su vari conti (Conto A, Conto B, ....) che a loro volta sono composti da tante operazioni (i singoli valori della mia colonna). Io ho semplificato la problematica ma in realtà le colonne da indagare sarebbero tre ovvero la colonna F, J e M. Nella colonna F ho il nome del conto, nella colonna J ho la descrizione di ogni singola registrazione (es. Servizi di attivazione x) e nella colonna M il relativo importo (es. 10.000,50).
Per una technicality che vi risparmio, molte singole registrazioni si può evitare di analizzarle perchè gli importi si "stornano" e quindi si annullano a vicenda non impattando quindi sul risultato finale. In un mondo ideale (è così circa per l'80% dei casi) io mi ritrovo la seguente situazione quando si verificano queste elisioni:
Conto A (colonna "F") Servizi di attivazione x (colonna "J") 10.000,50 (colonna "M")
altre voci
........
........
Conto A (colonna "F") Servizi di attivazione x (colonna "J") -10.000,50 (colonna M)
Non vi ho parlato delle colonne "F" e "J" perchè temevo di esagerare nella complicazione delle richiesta..
Questo lavoro lo devo fare periodicamente su circa 200 conti per un totale di circa 12.000 righi complessivi distribuiti all'interno dei vari conti nella maniera più disparata.
Attualmente quindi manualmente mi isolo tutti i righi relativi ad un singolo conto (utilizzando i filtri), inizio ad elidere quelli con descrizione uguale e importi opposti, dopodichè inizio la mia analisi sui restanti righi. Ma capite che essendo tutti sparpagliati è un lavoro disumano e lunghissimo.
Ho pensato di fare un sort in ordine di importi e poi lo stesso ma al contrario sulla colonna a fianco per velocizzare e facilitare la ricerca ma è comunque lunga anche così l'attività (considerando che questa è un'attività propedeutica all'attività vera e proprio ovvero l'analisi dei righi rimanenti).
Per quanto riguarda la distribuzione quantitativa dei segni + e - nel 99,99% dei casi avrò nei singoli conti sicuramente più segni positivi che negativi.
Se ci fosse un modo per automatizzare questo passaggio sarei la persona più felice del mondo.
Grazie ancora a tutti per l'aiuto!!
Post: 6.396
Registrato il: 14/11/2004
Utente Master
Office 2019
OFFLINE
09/06/2021 06:20

Ciao Valdo, l'avevo immaginato che si trattava di confronti per conti economici, quello che mi lasciava perplesso era il fatto di trovare i negativi e positivi uguali, molte volte si è cercato di trovare la sommatoria per il raggiungimento di una somma per lo storno di una fattura.

ma anche qui esce fuori lo stesso problema, si è sicuri che le due occorrenze trovate corrispondono alle voci opposte?, l'elisione non può corrispondere perfettamente anche perche l'algoritmo(macro) trova le prime occorrenze opposte tralasciando le altre, e qui entrerebbe in funzione l'altro parametro la descrizione

inserendo i dati originali logicamente togliendo dati sensibili, si sarebbe potuto trovare un confronto migliore.

rispondendo a Frank che saluto con la sua bella Halle Barry infatti mi ero posto il problema, dei doppioni anche nel segno opposto.

adesso provo un metodo e vediamo se va bene, ma avendo anche le descrizioni, avrei potuto trovare un doppione elencando i doppioni del segno opposto, con la loro descrizione, in questo modo il confronto di elisione sarebbe stato più preciso, perche la scelta manuale sarebbe più mirata.

a breve con un esempio.

Ciao By Sal (8-D
se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
Post: 6.397
Registrato il: 14/11/2004
Utente Master
Office 2019
OFFLINE
09/06/2021 08:19

Ciao ecco il risultato, quello che ti interessa è la colonna "K" quella del confronto, le altre si potrebbero anche eliminare, come puoi vedere un positivo può corrispondere ad 1 o molti negativi quando è 1 il problema è risolto, ma quando sono più di 1 allora inserendo la descrizione puoi fare una scelta mirata alla voce positiva, vedi il 33 quanti ce ne sono.
questa l'immagine


ti allego ifile cosi com'è ancora da affinare, può darsi che faccia doppia ricerca al momento, ma anche con doppioni ti accorgi subito se lo hai già controllato, logico che se devi aggiungere descrizioni allora bisogna modificare le macro.

Ciao By Sal (8-D
[Modificato da by sal 09/06/2021 08:23]
se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
Post: 16
Registrato il: 10/10/2018
Città: MILANO
Età: 46
Utente Junior
Microsoft Office 2013
OFFLINE
09/06/2021 10:25

Grazie infinite Salvatore ma ancora non mi torna il discorso. Ti allego un file che, a parte i dati modificati, è esattamente una micro-replica dell'originale. Le colonne con i dati discriminanti le ho evidenziate in giallo e con i restanti colori ho simulato il lavoro che attualmente viene fatto a mano e che mi cambierebbe la vita se fosse possibile automatizzare (perchè queste elisioni sono una valanga e se non vengono fatte per qualsiasi motivo si sbaglia completamente l'analisi).
Grazie ancora, saluti
Post: 6.398
Registrato il: 14/11/2004
Utente Master
Office 2019
OFFLINE
09/06/2021 12:30

Ciao Una domanda, di norma esiste sempre prima un positivo e poi un negativo oppure anche invertito ci può essere un negativo senza positivo, credo di si perche una spesa non ancora coperta è possibile.

Ciao By Sal (8-D

se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
Post: 6.400
Registrato il: 14/11/2004
Utente Master
Office 2019
OFFLINE
10/06/2021 07:29

Ciao Valdo, eccoti il risultato che sono riuscito ad ottenere, vedi immagine



Come puoi vedere riporta tutti i doppioni dell'elenco che mi hai inviato, ti ho fatto inserire il numero di riga per sapere la posizione poi la voce del movimento la data e l'importo

a volte anche se gli importi sono uguali la voce di imputazione può essere diversa ecco perche ho inserito la voce come discriminante ed anche la data che può essere risolutiva per capire il periodo.

come operare al limite usa questo file per base di lavoro fai copia incolla dei dati e lancia la macro tramite il pulsante ed avrai tutti i doppioni per fare i riscontri che ti servono, che potrai stampare e riscontrare sul file originale.

penso che questi siano i dati che ti servono per la scelta altrimenti i dati possono anche essere altri

in effetti come funziona, faccio ricavare un elenco di importi unici, poi controllo se l'importo ha corrispondenze negative, in tal caso visualizzo tutti i movimenti negativi e positivi di quell'importo in modo da confrontare per elidere i corrispondenti.
ce ne voluto un poco per trovare il modo giusto di ricerca, sempre che sia quello esatto, può anche darsi che mi sia sbagliato

si potrebbe anche ulteriormente automatizzare, pero dovrei capire cosa intendi per "Elisione" cioè devi "Eliminare" fisicamente le voci scelte dall'elenco a sx

ti allego il file

Ciao By Sal (8-D
[Modificato da by sal 10/06/2021 07:38]
se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
Post: 17
Registrato il: 10/10/2018
Città: MILANO
Età: 46
Utente Junior
Microsoft Office 2013
OFFLINE
10/06/2021 10:40

Ciao Salvatore grazie infinite per il file. Ho fatto varie prove e devo dire che già così il lavoro che fa il codice è impressionante. Ho provato a sostituire la colonna della data da te prevista con quella del Conto "N1.........." perchè per me più rilevante come criterio (l'ottimo sarebbe avere in ordine Riga n° - Cont.gen. - Voce - Importo). A questo punto per completare l'automatismo il massimo sarebbe che automaticamente venissero barrati nella colonna AD gli importi di identico importo ma con segno opposto (mi riferisco a questo quando parlo di elisione) e le cui voci delle colonne "Voce" e "Cont.gen" corrispondono perfettamente e che tale barratura fosse riportata sui corrispondenti importi di colonna M. Infine sarebbe possibile, lasciando nell'ordine così come sono già (perchè è un ordine già perfetto) gli importi della colonna AD ma ordinando i dati in blocchi in base alla colonna "Cont.gen" (ripeto però senza cambiare all'interno di questi blocchi l'ordine di colonna AD così come da te già previsto)? Questo mi consentirebbe, lanciando il codice per tutti i dati insieme, di controllare velocemente il lavoro svolto dalla macro (però avendo un ordinamento per "Cont.gen") apportando eventualmente delle modifiche manuali (esempio aggiungendo o togliendo barrature a importi della colonna AD) che sarebbe meraviglioso fossero recepite in in qualche modo anche dagli importi di colonna M. Questo sarebbe proprio il non plus ultra.
A prescindere grazie infinite per quando hai già fatto, grazie davvero!
Post: 6.408
Registrato il: 14/11/2004
Utente Master
Office 2019
OFFLINE
10/06/2021 11:46

Ciao Valdo, visto che veder mangiare viene la voglia.

eccoti il file con le modifiche richieste, adesso se l'importo in colonna "M" è già barrato viene anche barrato nella colonna "AD" tanto per sapere che è già stato controllato, quindi un riscontro in meno da fare, ti ho spostato le colonne ed inserito i dati richiesti, ho fatto fare l'ordinamento richiesto vedi se è tutto ok, perche l'ordinamento con valori negativi gli importi negativi vanno a finire dopo i positivi, quindi negativi e positivi non sono adiacenti, i negativi più alti vanno alla fine.

non ho fatto fare l'elisione automatica in quanto entra in gioco la descrizione ed il numero di conto, e non so se convenga farlo, creando errori involontari.

in ultimo selezionando la colonna "AA" l'importo viene barrato o sbarrato a secondo della situazione precedente e nello stesso momento anche l'importo in colonna "M" subisce la stessa modifica.

penso che questo sia tutto

Ciao By Sal (8-D
[Modificato da by sal 10/06/2021 11:51]
se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
Post: 18
Registrato il: 10/10/2018
Città: MILANO
Età: 46
Utente Junior
Microsoft Office 2013
OFFLINE
11/06/2021 10:22

Ciao Salvatore grazie per il nuovo file ma non so se sbaglio io o se non gira correttamente il file (ho cliccato anche sulla colonna) fatto sta che secondo me al momento ci siamo allontanati un pochino dalla perfezione.
E' fantastico che adesso si accorpino i valori nel range AA:AD per "Cont.Gen" (e ti ringrazio per questo) però il fatto che adesso mi ordini gli importi di colonna AD da positivi a negativi (all'interno dello stesso conto "Cont.Gen") non mi agevola assolutamente più come prima trovarli immediatamente con abbinamento di seguito positivo/i e corrispondente negativo/i (anche perchè ho notato che adesso riporta più dati e non solo quelli con stessa descrizione e importo).
Sempre nella colonna AD non vengono barrati in automatico gli importi che hanno uguali "Cont.Gen.", "Voce" e Importi identici ma di segni opposti e tale barratura conseguentemente non viene riportata sui corrispettivi importi di colonna M (questi per me sono i punti chiave che mi cambierebbero la vita).
Sul fatto che invece mi riporti in automatico la barratura gà presente sugli importi di colonna M in colonna AD ti ringrazio ma questo è un punto non fondamentale anche perchè onestamente non so se quella "barratura" all'origine sia corretta.
Pensi si possa fare qualcosa per correggere un pò il tiro? Grazie mille a presto
Post: 6.411
Registrato il: 14/11/2004
Utente Master
Office 2019
OFFLINE
11/06/2021 10:42

Ciao ti mando un Mp perche non ho capito bene il problema.
al limite non dovrei fare l'ordinamento dell'importo, come ho detto non ho capito il problema

Ciao By Sal (8-D
[Modificato da by sal 11/06/2021 10:50]
se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | 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 06:55. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com