Zum Inhalt springen

Tabelle #CVAL?


b.illig

Frage

Geschrieben

Hallo zusammen,

 

ich bastel wieder / immer noch an meinen Tabellen. Jetzt habe ich eine If-Formel gebastelt, die irgendwie nicht funktioniert bzw. als Ergebnis "#CVAL?" auswirft. Laut Handbuch sei das eine "nicht aufgelöste zyklische Referenz". Hä!? bitte what?!

 

Die Formel lautet:

=IF(('Space'.'11_Net_Modi'='-75'); '25'; 'XX')

 

Vom Prinzip habe ich sie so aufgebaut, wie all die anderen IF-Formeln vorher, bei denen alles geklappt hat.

 

Was in der Tabelle passieren soll:

In der Spalte wird der Flächenansatz in % für Balkone und Terrassen ausgeworfen, der je nach Berechnungsart mal mit 25% oder 50% festgelegt ist. Dies trage ich im Feld "Flächenmodifikator Netto" ein. Für 25% eben "-75", für 50% -50. Damit in der Tabelle nicht -75 steht soll die IF-Formel daraus dann eine 25 machen. wenn dort -50 steht dann halt eine 50.

 

Und jetzt frage ich mich natürlich, was ich falsch gemacht habe.... 😉

 

Hier noch ein Screenhot der Tabelle:

 

TabelleIFFormelCVAL.thumb.png.45d182d3bda28014e59a75ae34e011b6.png

 

Vielen Dank und viele Grüße,

Burkard

 

 - - -

12 Antworten auf diese Frage

Empfohlene Beiträge

Geschrieben (bearbeitet)

Hallo @b.illig

Ich denke es liegt an deiner Formel.

Der Wert hinter 'Space'.'11_Net_Modi' ist mMn ein Zahlenwert, kein Textwert. Daher brauchst du die Anführungszeichen nicht.
Des weiteren hat sich bei dir eine mMn unnötige Klammer eingeschlichen.

(    =IF(('Space'.'11_Net_Modi'='-75'); '25'; 'XX')   )

Versuch mal die Formel:

=IF('Space'.'11_Net_Modi'=-75; '25'; 'XX')


Wenn du nun alle Bedinungen in eine Formel packen willst (Auch den Fall für -50 etc.), dann eignet sich evtl die Formel IFS() für dich. Das wäre eine IF Formel mit mehreren Fällen/Bedingungen.


Auszug aus https://developer.vectorworks.net/index.php/Worksheet_Functions/de
 

IFS((Logik1); Wert1; (Logik2); Wert2; ...; (Logikn); Wertn))
  Eines von mehreren möglichen Ergebnissen basierend auf einer Reihe von Abfragen. Der erste Wert, der die Abfrage erfüllt, wird gewählt. (Schweiz: IFS((Logik1), Wert1, (Logik2), Wert2, ..., (Logikn), Wertn)))
 
Beispiel:
=ifs(A4>30, 'yes', A4<=30, 'no') returns 'yes' if the number in the cell A4 is >30. Else, if it is <=30 'no' is returned



liebe Grüße !

Bearbeitet von GSP_nowhere
  • Like 2

...alles Liebe aus Stuttgart.....
MacBook Pro 2,3 8-core (9.te Generation i9) 32 GB / 1 TB SSD / Radeon Pro 5500M mit 8 GB / 16“

MacOS Big Sur 11.6.5

VW 21/22/23 Architektur

Wissen heißt wissen, wo es geschrieben steht.


2115531318_Bildschirmfoto2022-12-01um13_27.thumb.png.c7542b36e9fcb502b400421a69a6b4bd.png

Geschrieben

🙂

...alles Liebe aus Stuttgart.....
MacBook Pro 2,3 8-core (9.te Generation i9) 32 GB / 1 TB SSD / Radeon Pro 5500M mit 8 GB / 16“

MacOS Big Sur 11.6.5

VW 21/22/23 Architektur

Wissen heißt wissen, wo es geschrieben steht.


2115531318_Bildschirmfoto2022-12-01um13_27.thumb.png.c7542b36e9fcb502b400421a69a6b4bd.png

Geschrieben (bearbeitet)

🙂

 

Ich hab jetzt diese Formel verwendet, die ist supergut:

=IFS(('Space'.'11_Net_Modi'=-75); '25'; ('Space'.'11_Net_Modi'=-50); '50'; ('Space'.'11_Net_Modi'=-1,5); '100')

 

Eine kleine Optimierung bekomme ich irgendwie nicht hin: Der letzte Bereich mit den -1,5 ist für den Putzabzug. In manchen Projekten ist der mal 1%, in anderen ist er auch mal 2%. Daher würde ich es gerne so definieren, dass  hier alle Werte kleiner -5 gesucht werden und dann stattdessen 100 eingetragen wird.

 

"...('Space'.'11_Net_Modi'=<-5); '100')" hat leider nicht funktionert.

 

Dann müsste in der Tabelle nichts mehr geändert werden, wenn in den Räumen der Modfikator angepasst wird...

Bearbeitet von b.illig
  • Like 1

 - - -

Geschrieben (bearbeitet)
vor 8 Minuten schrieb b.illig:

('Space'.'11_Net_Modi'=<-5); '100')


=<-5
gesprochen "gleich kleiner minus fünf"

geht leider nicht

<=-5
gesprochen "kleiner gleich minus fünf"

sollte funktionieren 🙂


Prüf bitte noch, was beim Wert "0" passiert !

.... dazu fällt mir auch noch ein ... die Formel müsste eigentlich heissen:

>=-5

sonst wird es nicht wie gewünscht funktionieren!
Und diese Abfrage sollte dann die ganz letzte sein ... damit alle anderen Fälle bereits abgedeckt sind ...

Liebe Grüße

Bearbeitet von GSP_nowhere
  • Like 1

...alles Liebe aus Stuttgart.....
MacBook Pro 2,3 8-core (9.te Generation i9) 32 GB / 1 TB SSD / Radeon Pro 5500M mit 8 GB / 16“

MacOS Big Sur 11.6.5

VW 21/22/23 Architektur

Wissen heißt wissen, wo es geschrieben steht.


2115531318_Bildschirmfoto2022-12-01um13_27.thumb.png.c7542b36e9fcb502b400421a69a6b4bd.png

Geschrieben (bearbeitet)

@b.illig
Poste bitte nochmal deine bisherige Formel und alle gewünschten Fälle 🙂


Space net Modi                Tabellenwert
-75                                      25
-50                                     50
etc

Bearbeitet von GSP_nowhere

...alles Liebe aus Stuttgart.....
MacBook Pro 2,3 8-core (9.te Generation i9) 32 GB / 1 TB SSD / Radeon Pro 5500M mit 8 GB / 16“

MacOS Big Sur 11.6.5

VW 21/22/23 Architektur

Wissen heißt wissen, wo es geschrieben steht.


2115531318_Bildschirmfoto2022-12-01um13_27.thumb.png.c7542b36e9fcb502b400421a69a6b4bd.png

Geschrieben

=IFS(('Space'.'11_Net_Modi'=-75); '25'; ('Space'.'11_Net_Modi'=-50); '50'; ('Space'.'11_Net_Modi'<=-5); '100')

 

Space net Modi         Tabellenwert

-75                              25

-50                              50

-5                                100             (soll alle Putzabzüge zwischen 0-5% einbeziehen)

 - - -

Geschrieben (bearbeitet)

Hey @b.illig
 

 

wie oben beschrieben muss die Formel
=IFS(('Space'.'11_Net_Modi'=-75); '25'; ('Space'.'11_Net_Modi'=-50); '50'; ('Space'.'11_Net_Modi'>=-5); '100')
sein.

0,-1, -2,-3,-4 etc. sind rechnerisch nämlich GRÖßER als -5, nicht KLEINER als -5.

N/A (not available) wird ausgegeben, wenn keine der Bedingungen greift.
Für ein "überschreiben" von N/A ist die Formel =IFUNGÜLTIG() nutzbar.

 

IfUngültig(Wert; Wert_wenn_ungültig)
  Wenn der Wert den Inhalt Ungültig (n/a) hat, wird der Inhalt von Wert_wenn_ungültig verwendet, andernfalls der Inhalt von Wert selbst. (Schweiz: IfUngültig(Wert, Wert_wenn_ungültig))
 
=IfNA(Angle('energos'), '-') On a database row, calculates the Energos angle of the objects, and if they are not applicable, would use '-'




Diese Ausgabe von N/A (oder IFUNGÜLTIG() ) kann für dich eine Prüfung sein, ob Werte in Raumobjekte falsch eingegeben wurden.


Liebe grüße!

Bearbeitet von GSP_nowhere
  • Like 1

...alles Liebe aus Stuttgart.....
MacBook Pro 2,3 8-core (9.te Generation i9) 32 GB / 1 TB SSD / Radeon Pro 5500M mit 8 GB / 16“

MacOS Big Sur 11.6.5

VW 21/22/23 Architektur

Wissen heißt wissen, wo es geschrieben steht.


2115531318_Bildschirmfoto2022-12-01um13_27.thumb.png.c7542b36e9fcb502b400421a69a6b4bd.png

Geschrieben
vor 30 Minuten schrieb GSP_nowhere:

0,-1, -2,-3,-4 etc. sind rechnerisch nämlich GRÖßER als -5, nicht KLEINER als -5.

 Argh! Immer diese mathematisch-logische Denken!!!

 

😂😂

  • Like 1

 - - -

Geschrieben (bearbeitet)
vor 2 Minuten schrieb b.illig:

mathematisch-logische Denken

Ein Freitag im Hochsommer ist dafür auch ein denkbar schlechter Zeitpunkt ! 😄

Liebe grüße

Bearbeitet von GSP_nowhere
  • Lachen 2

...alles Liebe aus Stuttgart.....
MacBook Pro 2,3 8-core (9.te Generation i9) 32 GB / 1 TB SSD / Radeon Pro 5500M mit 8 GB / 16“

MacOS Big Sur 11.6.5

VW 21/22/23 Architektur

Wissen heißt wissen, wo es geschrieben steht.


2115531318_Bildschirmfoto2022-12-01um13_27.thumb.png.c7542b36e9fcb502b400421a69a6b4bd.png

Geschrieben

Hallo,

 

auch wenn das obige Problem bereits gelöst wurde, möchte ich nochmals auf dieses Thema zurückkommen, da ich denke, dass hier ein Fehler in der logischen Abfrage = vorliegen könnte.

 

Wenn nämlich in einer Zelle (hier z.B. A1) eine Kommazahl (z.B. 1,5) steht, dann gibt der logische Ausdruck  =A1='abc' den Fehler #CVAL? zurück.

Wohlgemerkt passiert das nicht, wenn in der Zelle eine Ganzzahl (z.B. 1) steht. Dann wird wie erwartet der Wert "Falsch" zurückgegeben.

 

Ein weiteres Detail, das man Anhand von diesem Verhalten herausfinden kann ist, dass dieser Fehler auch dann auftritt, wenn man in eine Zelle (Formatierung Standard oder Zahl) z.B. den Zahlenwert 1,0 eintippt. Dann wid in der Zelle nämlich nur der Wert 1 (ohne Komma Null) angezeigt, der Fehler tritt aber trotzdem auf. Was darauf hinweisen könnte, dass intern die Zahl in der Zelle trotzdem als Kommazahl abgespeichert ist.

 

Vermutlich war genau das auch der Ursprung des Fehlers in diesem Thema, da dort mit einem Wert verglichen wurde der als -75 händisch in das Raumobjekt eingetragen und dort auch so angezeigt wurde. Intern wurde das aber als -75,0 abgespeichert, was dann zu dem oben beschriebenen Fehler geführt hat.

 

Interessant wäre zu testen, ob das in der englischen Version in Vectorworks auch so ist, weil wenn nicht, dann liegt es an der deutschen Schreibweise von Kommazahlen.

 

Es scheint aber so als könne man dieses Problem zumindest teilweise mit der Exakt() Funktion umgehen, da dort der Fehler nicht auftritt. Der logische Ausdrück könnte dann so aussehen: =Exakt(A1;'abc').

Exakt() is allerdings, im Gegensatz zu =, case sensitive, d.h. für Exakt() sind 'abc' und 'Abc' nicht dasselbe, für = aber schon.

 

 

Grüße,
Letti

  • Like 1

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden
  • Forenstatistik

    • Themen insgesamt
      26,3Tsd
    • Beiträge insgesamt
      136,7Tsd
×
×
  • Neu erstellen...