Ich habe mehrere Excel-Zellen im Format 22/7, 355/113, 3927/1250 und so weiter.
Wie stelle ich jeder Zelle ein „=“ voran, damit der tatsächliche numerische Wert berechnet wird?
Verwenden der Textverkettung wie in der Frage gezeigt:Einfügen von Text am Anfang jeder Zelle in einer Spaltefunktioniert nicht (Text wird hinzugefügt).
Ich habe versucht, die Zellenformatierung (numerisch, wissenschaftlich usw.) zu ändern, ohne eine Verbesserung festzustellen.
Auch wenn A1 22/7 ist, funktioniert die Erstellung von B1 =VALUE(A1) auch nicht, ich erhalte #VALUE!
Wie kann man also die Berechnung der Werte jeder Zelle erzwingen?
Antwort1
Antwort2
Wenn Sie Powershell verwenden können, können Sie damit den Zellinhalt ändern. Für Werte in den Zellen A1 bis A3 auf Blatt 1 in einer Excel-Tabelle namens Example.xlsx verwenden Sie das folgende Skript
$FilePath = 'C:\Users\Username\Documents\Example.xlsx'
# Instantiate the COM object
$Excel = New-Object -ComObject Excel.Application
$Workbook = $Excel.Workbooks.Open($FilePath)
$Sheet = $Excel.WorkSheets.item("sheet1")
$Sheet.activate()
$Sheet.Range('A1:A3').NumberFormat=""
foreach ($Cell in $Sheet.Range('A1:A3').Cells) {
$Cell.Value2 = '=' + $Cell.Value2
}
$WorkBook.Save()
$WorkBook.Close()
$Excel.Quit()
Antwort3
Die folgende Arbeitsblattfunktion macht genau das, was Sie verlangt haben:
=LEFT(A1,FIND("/",A1)-1)/RIGHT(A1,LENGTH(A1)-FIND("/";A1))
Dabei wird der Schrägstrich im Bruch gesucht und die Zeichenfolge dann in den Teil vor und den Teil hinter dem Schrägstrich geteilt. Anschließend werden beide Teile geteilt, sodass Sie eine Dezimalzahl erhalten.
Antwort4
Das Folgende ähnelt dem ersten im Link aus den Kommentaren. Es ist jedoch „sauberer“, da die damals (2010) gegebene Antwort auf Aspekten von Excel basierte, die nicht mehr existieren.
Ich gehe davon aus, dass Sie die Daten durch die berechneten Ergebnisse ersetzen möchten. Wenn ja, gehen Sie wie folgt vor. Wenn nicht, platzieren Sie die Ergebnisse an einer anderen geeigneten Stelle.
Fügen Sie eine Hilfsspalte ein und geben Sie (beispielsweise in B1) folgende Formel ein:
= "=" & A1
Excel macht nicht mehr die abscheuliche Sache, ein führendes '
Zeichen als Formatierungszeichen zu betrachten, wie es früher bei 1-2-3 der Fall war, aber es besteht ohnehin keine Notwendigkeit, es zu verwenden, da Excel eine Textzeichenfolge problemlos mit "=" beginnt. Das ist also wirklich das Einfachste, was Sie tun können.
Füllen Sie nach Bedarf aus oder kopieren/fügen Sie nach unten ein. Markieren Sie alle Formelzellen und kopieren Sie sie. Gehen Sie dann zu Zelle A1 und Paste|Special|Values
platzieren Sie die ERGEBNISSE der obigen Formel (NICHT die Formeln) „über“ die Ausgangsdaten. Löschen Sie dann die Hilfsspalte. Sie haben jetzt Dinge wie:
=22/7
wobei es als Text behandelt wird, auch wenn Sie das Format in ein numerisches Format ändern.
Markieren Sie alles noch einmal (oder machen Sie dies direkt nach P|S|M und löschen Sie die Hilfsspalte später) und Find and Replace
suchen Sie mit nach "=" und ersetzen Sie es durch "="...
Ja, suchen Sie das Gleichheitszeichen und ersetzen Sie es durch sich selbst. Excel erledigt das gerne und betrachtet es, ANDERS als viele andere Techniken, nicht immer wieder als Text, nachdem es das getan hat. Wenn Sie immer wissen möchten, was das Originalmaterial war, lassen Sie es so. Wenn Sie die Zelle untersuchen, sehen Sie immer, dass diese beispielsweise mit „22/7“ begann, weil sie nach dem „=“ immer noch da ist. Wenn Sie das nicht brauchen, markieren Sie sie alle, kopieren Sie sie und drücken Sie noch einmal P|S|V, um nur die Ergebnisse der Berechnungen an Ort und Stelle zu lassen.
Alles erledigt.
(Übrigens ist dies eine dieser Situationen (seltsamerweise wird NIE darüber gesprochen), die nicht häufig vorkommen, aber zu unserer Überraschung auftauchen, in denen Sie Paste|Special|Multiply
die Ausgabe der Verkettung mit 1 nicht sehen können und sehen, wie sich alles in Werte ändert. Es bleibt als „=22/7“ und am linken Rand der Zelle wie Text. Sie müssten jeden Punkt manuell mit ändern F2-Enter
.)
Abgesehen davon ist ein nettes kleines Makro der „Goldstandard“. Es ist schnell, einfach, Sie können es einer Schaltfläche zuweisen, um es für neues Material zu verwenden, es ist einfach alles gut. Solange Sie es verwenden dürfen. Aber das sieht für Sie, den Ersteller der Tabellenkalkulation, nach einer Hausarbeit aus, nicht nach etwas, das Benutzer tun würden, nachdem Sie die Tabellenkalkulation erstellt haben. Man könnte also meinen, die meisten Organisationen wären damit zufrieden. Das von Garys Student sieht ziemlich unkompliziert aus. Das von Antony sieht komplizierter aus, scheint aber auch ziemlich unkompliziert zu sein.
Und... ich will Sie nicht in Schwierigkeiten bringen... aber Sie können immer ein Makro für eine Haushaltsarbeit wie diese hinzufügen, während Sie die Tabelle geöffnet haben, es verwenden, dann löschen oder einfach im XLSX-Format speichern, damit Excel das Makro für Sie entfernt. Nur so nebenbei...
Aus der verlinkten Frage, auf die ich angespielt habe, EVALUATE()
würde die Verwendung Spaß machen. Aber es macht mehr Ärger, da Sie mehrere Dinge tun müssen, die etwas schwieriger sind als der obige Ansatz.
Ich würde den Ansatz „Zerreißen und wieder zusammensetzen“ von Michthan nicht empfehlen, einfach weil Ihre Daten komplizierter sein könnten, als buchstäblich alles zu teilen und den Schrägstrich zu verwenden, um es anzuzeigen. Wenn das der Fall ist, müssen Sie jetzt oder in Zukunft die Formel erweitern, um alle möglichen Situationen abzudecken. In dieser Situation ist das vielleicht nicht das geringste Problem, aber wenn es eine einfache Lösung gibt, die all das vermeidet, warum verwenden Sie diese nicht stattdessen? Allerdings funktioniert dieser Ansatz auch und könnte notwendig sein, je nachdem, wie Ihnen Ihre Daten in Zukunft zugestellt werden.
(Und da diese Antworten für alle von Nutzen sind, verfügt jemand anderes möglicherweise bereits über einen komplexeren Datensatz und findet diesen Ansatz nützlich, auch wenn es mit viel Arbeit verbunden ist, alle Grundlagen abzudecken.)