Domanda

Ho un foglio Excel
alt text

Il requisito è sommare le cifre nelle celle nella colonna 'C' e inserire il valore nella cella corrispondente nella colonna 'B' (nel mio esempio 0,25 + 1 + 0,25 + 1 = 2,5).

I valori nella colonna 'C' potrebbero cambiare. Il requisito è aggiornare il valore in "B" non appena la cella nella colonna "C" cambia.

Ho chiesto al creatore di cambiare testo e numeri in due colonne diverse, ma ciò non è accettabile a causa del modello standard.

È stato utile?

Soluzione

Questo può essere ottenuto, senza alterare il testo nella cella, usando una Macro. Devo ammettere che l'implementazione sarà un po 'ritardata, dal momento che è necessario fare alcune cose.

1 - Tokenizza l'intero contenuto della cella e archivia i token in una matrice di stringhe.

C'è già un problema. Il testo situato all'interno della cella è sostanzialmente incoerente. Hai -250 ms, - 250 ms, - 1sec, - 1 sec. Per questo motivo, dovrai verificare ogni istanza. Pertanto, non puoi semplicemente verificare se il valore è un numero, devi controllare tutte le permutazioni che i membri del tuo team ti hanno fornito convenientemente.

Il modo migliore per farlo sarebbe quello di verificare le espressioni regolari. Pertanto, # 2 dovrebbe essere:

2: controlla ogni valore per vedere se corrisponde a una delle molte 4 espressioni regolari.

3 - A seconda del Regex a cui corrisponde, estrai il valore numerico.

a) Se semplicemente un valore (es. > 250), controlla se ms o sec procede il valore. IF ms, dividi il numero per 1000. Se sec, lascia il numero così com'è. Aggiungi il numero al totale.
b) Se un numero è preceduto da un trattino (-), rimuovere il trattino e ripetere il passaggio a)
c) Se un numero seguito da lettere, rimuovere le lettere e ripetere il passaggio a)
d) Se un numero seguito da un punto, non fare nulla. Questo è un punto elenco.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top