2017-06-29 1 views
0

In meiner Excel-Datei habe ich einige Daten, die entweder einen Strich - oder eine ganze Zahl enthält. Die Daten sieht wie folgt aus:Excel: Zeichenfolge vs Ganzzahl Vergleich ist gleich WAHR, aber warum?

enter image description here

Nach wünsche ich, ob diese Werte zu überprüfen, sind höher als einige besondere Bezugsganzzahl. Ich verwende die folgende (gereinigt) INDEX-Anweisung die einzelnen Werte zu erhalten:

INDEX($E6:$DL6;<Row>;<Column>)

die mich dann auf den Referenzwert (in DO$4 in diesem Fall befand) vergleichen und 1 zurück, wenn Wahr, 0, wenn Falsch und mit einem Fehler wird wieder ein Strich gedruckt.

=IFERROR(IF(<Indexed value>=DO$4;1;0);"-")

Ich würde davon ausgehen, dass der Vergleich "-">=DO$4 diese Fehler werfen würde. Aus irgendeinem Grund erzeugt die if-Anweisung jedoch einen 1, was bedeutet, dass der Vergleich True ist.

Wie ist es möglich, dass ein solcher Vergleich keinen Fehler erzeugt? Die Funktion geschrieben wird, wie folgt:

=IFERROR(IF(INDEX($E6:$DL6;1;<Column-indexer>)>=DO$4;1;0);"-")

Antwort

1

Ein Vergleich einer Zeichenkette mit einer Reihe nicht Produkt einen Fehler - die Zeichenfolge (in diesem Fall einen Strich mit einem Apostroph vor davon) immer größer.

enter image description here

Sie könnten eine VALUE-Funktion um den Index gesetzt, so dass es einen Fehler werfen würde, wenn es gibt eine Zeichenfolge

=IFERROR(IF(VALUE(INDEX($E6:$DL6;1;<Column-indexer>))>=DO$4;1;0);"-") 

Oder alternativ verwenden ISNUMBER

=IF(ISNUMBER(INDEX($E6:$DL6;1;<Column-indexer>)),if(INDEX($E6:$DL6;1;<Column-indexer>)>=DO$4;1;0);"-") 

zu konvertieren versucht ist ein kleiner Unterschied - wenn die erste Formel auf eine als Text formatierte Zahl trifft, wird sie in eine Zahl umgewandelt, aber die zweite wird sie als Text behandeln.

+1

Auch Mathe ist möglich wie '+ 0' oder' * 1', um den Fehler zu bekommen; D –

+0

Zustimmen, danke @Dirk –