Formula di Excel per determinare l'ID cella quando una serie di numeri diventa negativa
-
19-08-2019 - |
Domanda
Dati di esempio
A B
1 Date Amount
2 Apr 1 $6,000
3 May 1 $4,250
4 June 1 $2,750
5 July 1 $1,000
6 Aug 1 -<*>.075 <- This Cell/Row
7 Sept 1 -<*>.2500
In una colonna di numeri (in realtà 100-200 righe), quando il valore cambia in negativo, ad es. se questi sono importi dovuti su un prestito, quando il prestito sarebbe pagato da. Nota la vera differenza tra i numeri varia in base a interessi, tasse, pagamenti una tantum ecc. Quindi non posso solo contare (totale / pagamento) = numero di mesi.
C'è un modo per usare le formule di Excel per determinarlo? Questo potrebbe essere il caso di richiedere VBA (che va bene) ma se posso evitarlo, mi piacerebbe.
Soluzione
La funzione di corrispondenza restituisce un indice di intervallo
=MATCH(matchValue, range, matchType: 0=exact, 1=greater than, -1=less than
=MATCH(0, B2:B7, -1)
Corrisponde alla prima cella che è inferiore a 0 nell'intervallo B2: B7. Dai dati di esempio ciò restituirebbe 5
Utilizzare la funzione Offset per restituire una cella particolare in base al valore dell'indice
Altri suggerimenti
Utilizza la formula MATCH per determinare il numero di riga.
=MATCH(lookup value, lookup range, lookup type)
=MATCH(0,B1:B7,-1)
Dovrai utilizzare il tipo di corrispondenza -1, poiché i tuoi dati sono in ordine decrescente. Questa impostazione restituirà il valore più piccolo che è maggiore o uguale al valore di ricerca di 0.
In base ai tuoi dati, questo restituirebbe il numero di riga 5 . Ti aspetti di vedere il numero di riga 6 , quindi la formula deve essere estesa come segue.
=MATCH(0,B1:B7,-1)+1
Per determinare l'ID cella, è necessario racchiudere questa formula in una INDIRIZZO .
=ADDRESS(Row number, Column number)
=ADDRESS(MATCH(0,B1:B7,-1)+1,2)
Ciò restituirebbe il valore $B$6
Probabilmente sarebbe più utile restituire la data o il valore correlati. Questo può essere fatto con una formula OFFSET .
=OFFSET(A1,MATCH(0,B1:B7,-1),0)
=OFFSET(A1,MATCH(0,B1:B7,-1),1)
La prima formula restituirà la data in A6, 1 agosto
La seconda formula restituirà il valore in B6, -$0.075
Non sono sicuro che tu voglia fare.
Se vuoi evitare di avere un numero negativo puoi farlo:
=IF(YOUR_CELL_ACTUAL_FORMULA < 0 , 0, YOUR_CELL_ACTUAL_FORMULA)
Se vuoi sapere quando il numero diventa negativo puoi farlo:
=MATCH(0, YOUR_AMOUNT_RANGE, -1)
Questo ti darà il primo numero di riga quando l'importo è negativo.