Frage

Ich habe ein Excel-Blatt
alt text

Die Anforderung ist die Ziffern in den Zellen in der Spalte ‚C‘ zu summieren und den Wert in der entsprechenden Zelle in der Spalte ‚B‘ gesetzt (in meinem Beispiel 0,25 + 1 + 0,25 + 1 = 2,5).

Die Werte in Spalte 'C' könnte sich ändern. Die Anforderung ist, den Wert in ‚B‘, sobald die Zelle in der Spalte ‚C‘ Änderungen zu aktualisieren.

habe ich den Schöpfer bitten, Text und Zahlen in zwei verschiedenen Spalten zu ändern, aber das ist, weil das Standard-Template nicht akzeptabel.

War es hilfreich?

Lösung

Dies kann erreicht werden, ohne dass der Text in der Zelle zu verändern, mit einem Makro. Ich muss zugeben, wird die Umsetzung ein wenig verzögert werden, da Sie ein paar Dinge tun müssen.

1 - tokenize die gesamte Zellgehalt, und speichert die Tokens in ein String-Array

.

Es gibt ein Problem bereits. Der Text in der Zelle befindet sich grob uneinheitlich. Sie haben -250 ms - 250 ms - 1 s, - 1 Sek. Aus diesem Grund, werden Sie für jede Instanz überprüfen müssen. Daher können Sie nicht nur überprüfen, ob der Wert eine Zahl ist, müssen Sie alle Permutationen überprüfen, die Ihre Teammitglieder, damit Sie bequem zur Verfügung gestellt haben.

Der beste Weg, dies zu tun wäre, um gegen reguläre Ausdrücke zu überprüfen. Daher # 2 sollte sein:

. 2 - jeden Wert Überprüfen Sie, ob es zu einer von vielen 4 Reguläre Ausdrücke Spiele

. 3 - Je nach Regex es mit übereinstimmt, extrahiert den numerischen Wert

a) Wenn nur ein Wert (IE-> 250), ob ms oder s den Wert geht. IF ms, die Zahl von 1000. Wenn sec teilen, lassen Nummer gibt. In Nummer insgesamt.
b) Wenn eine Zahl mit einem Gedankenstrich (-), Bindestrich entfernen, und wiederholen Sie Schritt a)
c) Wenn eine Anzahl von Buchstaben gefolgt, entfernen Sie Buchstaben und wiederholen Sie Schritt a)
d) Wenn eine Zahl gefolgt von einem Punkt, nichts zu tun. Dies ist ein Aufzählungspunkt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top