Cambiare numero positivo in negativo
Hai un problema con Excel?
Cambiare numero positivo in negativo
di paky89 (utente non iscritto) data: 23/12/2017 23:01:30
Buonasera, volevo chiedere sè possibile far diventare un numero negativo in base a cosa si sceglie nella colonna I...mi spiego meglio...se scelgo V il numero che visualizzare nella colonna K deve essere positivo mentre se scelgo P il numero della colonna K deve essere negativo
di Zer0Kelvin data: 23/12/2017 23:59:51
Ciao.
E' un po' vaga come richiesta.
Se in colonna K ci sono delle formule si può fare con un SE() altrimenti serve una routine VBA oppure una colonna di appoggio.
La soluzione col VBA prevede l'utilizzo dell'evento Worksheet_Change.
Deve essere inserito nel modulo di codice del foglio interessato.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count = 1 And Not Intersect(Target, Range("P:P")) Is Nothing Then
If IsNumeric(Target.Offset(0, -5)) Then
Application.EnableEvents = False
If Target = "V" Then
If Target.Offset(0, -5) < 0 Then Target.Offset(0, -5) = -Target.Offset(0, -5)
ElseIf Target = "P" Then
If Target.Offset(0, -5) > 0 Then Target.Offset(0, -5) = -Target.Offset(0, -5)
End If
Application.EnableEvents = True
End If
End If
End Sub
|
di scossa data: 24/12/2017 01:16:51
cit.: ".... Not Intersect(Target, Range("P:P"))"
Ciao ZeroKelvin,
credo il riferimento sia la colonna I e non P.
Comunque, per partecipare, propongo un codice alternativo.
scossa's web site |
Se tu hai una mela, ed io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw) |
Private Sub Worksheet_Change(ByVal Target As Range)
With Target(1, 1).Offset(0, 2)
If Not Intersect(Target, Range("I:I")) Is Nothing And IsNumeric(.Value) Then
Application.EnableEvents = False
.Value = IIf(Target(1, 1) = "V", Abs(.Value), IIf(Target(1, 1) = "P", -Abs(.Value), .Value))
Application.EnableEvents = True
End If
End With
End Sub |
Mi spiego meglio
di paky89 (utente non iscritto) data: 24/12/2017 10:27:58
Allora nella colonna I c'è la convalida dati che contiene (V,P,N,R) poi nella colonna K ci sono dei numeri con la formula =SOMMA(G12+H12)..ma non so come applicare la formula SE nella colonna K, anche perché con V va bene cosi com'è ma io ho bisogno che con P questo numero diventa negativo ad es. 10 diventa -10 mentre con R qualsiasi numero diventi 0 ad es. 10 diventa 0..
NB: Dimenticavo di dirmi che i dati inizio dalla riga 12 fino alla riga 171
di Zer0Kelvin data: 24/12/2017 15:01:52
Bastano due SE nidificati, il primo controlla se I12 contiene V, il secondo se contiene P, in tutti gli altri casi, restituisce 0 .
Questo va bene se, come dici, la somma è sempre positiva.
PS: @Scossa, si, hai ragione, mi riferivo alla colonna sbagliata.
Non reggo più l'ora tarda...
=SE(I12="V";SOMMA(G12+H12);SE(I12="P";-SOMMA(G12+H12);0)) |
RISOLTO
di paky89 (utente non iscritto) data: 26/12/2017 11:27:35
Grazie a tutti per l'aiuto
di scossa data: 26/12/2017 12:20:13
Ciao,
SOMMA(G12+H12)
o SOMMA(G12:H12) o G12+H12 ma usare la funzione SOMMA() con un solo parametro non ha senso.
scossa's web site |
Se tu hai una mela, ed io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw) |
di Zer0Kelvin data: 26/12/2017 12:30:39
De gustibus...
di scossa data: 26/12/2017 12:41:49
cit. ZeroKelvin: "De gustibus.."
Eh no, la mia osservazione non è soggettiva ma oggettiva:
con SOMMA(G12+H12) Excel prima esegue la somma di G12+H12 e poi passa il risultato alla funzione SOMMA(), la quale restituisce lo stesso valore, quindi non fa altro che utilizzare risorse senza apportare alcun contributo.
Poi ognuno fa come vuole, ma mi sembrava giusto farlo notare.
scossa's web site |
Se tu hai una mela, ed io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw) |
di Zer0Kelvin data: 26/12/2017 22:58:34
Più che giusto, la mia non voleva essere una giustificazione.
Veramente ero anche un pò in imbarazzo per non averlo notato.
E' giusto usare sempre il minimo di risorse necessarie.
Vuoi Approfondire?