Forum de la communauté Allplan

[Question] Formelfehler in Datafield in Allplan Report [Résolu]

Balises:
  • Allplan
  • 2019-1-15;
  • Datafield;
  • Formelfehler

Liebe Allplan-Profis,
ich finde leider den Fehler in der Allplan-Formel nicht, in Excel war die Anforderung hingegen schnell gelöst (Siehe Screenshots).
Geprüft soll werden, ob in @214@ ein Textbereich "Mak" gefunden wird UND ob in @2040@ eindeutig "Möbel", "Elektro", "Pflanzen" oder "Tracht" zu finden ist.
Falls Ja: gibt die Zahl "2" aus.
Wenn nicht:
Geprüft soll werden, ob zumindest in @214@ ein Textbereich "Mak" gefunden wird (Ohne weitere Bedingungen wie oben).
Falls Ja: gibt die Zahl "1" aus.
Falls beides nicht zutrifft, soll die Zahl "0" ausgegeben werden.

Das klapp aktuell bereits soweit ganz gut, außer wenn der Fall ein tritt, dass in @214@ der Textbereich "Mak" nicht gefunden wird, jedoch in @2040@ einer der 4 Suchbegriffe.
Das Ergebnis sollte hier 0 sein, leider wird es analog des ersten Suchdurchganges mit Ergebnis "1" ausgegeben.
Wenn also @214@ nicht "Mak" enthält, muss immer "0" ausgegeben werden.

Die aktuelle Formel:
f=_IF_(@214@.eq."*Mak*".and.@2040@.eq."Möbel".or.@2040@.eq."Elektro".or.@2040@.eq."Pflanzen".or.
@2040@.eq."Tracht")"2"_ELSE__IF_(@214@.eq."*Mak*")"1"_ELSE_"0"

Vermutlich muss das letzte _ELSE_"0" sinngemäß gegen
"Wenn in @214@ KEIN Textbereich "Mak" gefunden wird, dann "0"..."
ersetzt werden?
Hat hier bitte jemand eine Lösung für mich?
Vielen, lieben Dank!
Günther

Pièces-jointes (2)

Type: image/jpeg
Téléchargé 42 fois
Size: 221,19 KiB
Type: image/jpeg
Téléchargé 23 fois
Size: 37,41 KiB

Show solution Hide solution

ich vermute einen logikfehler in der ersten abfrage.

f=_IF_(@214@.eq."*Mak*".and. ( @2040@.eq."Möbel".or.@2040@.eq."Elektro".or.@2040@.eq."Pflanzen".or.
@2040@.eq."Tracht" )
)"2"_ELSE__IF_(@214@.eq."*Mak*")"1"_ELSE_"0"

wenn schon eine abfrage mit einem UND mit weiteren verknüft wird, die untereinander als "oder" zusammenhängen, muss der ganze "Oder-Bereich" in eine klammer gesetzt sein.

den zweiten IF/Else teil würde ich auch in eine klammer setzen. dann wird auch besser lesbar.

Namenlos gezeichnet in vollem Bewusstsein - ignorant, in eigen Augen vermutlich höflich, dennoch unhöflichst, unfreundlichst wer einen/viele vermutete - sich von alters erschließende Namen nennt.
[b]

ich vermute einen logikfehler in der ersten abfrage.

f=_IF_(@214@.eq."*Mak*".and. ( @2040@.eq."Möbel".or.@2040@.eq."Elektro".or.@2040@.eq."Pflanzen".or.
@2040@.eq."Tracht" )
)"2"_ELSE__IF_(@214@.eq."*Mak*")"1"_ELSE_"0"

wenn schon eine abfrage mit einem UND mit weiteren verknüft wird, die untereinander als "oder" zusammenhängen, muss der ganze "Oder-Bereich" in eine klammer gesetzt sein.

den zweiten IF/Else teil würde ich auch in eine klammer setzen. dann wird auch besser lesbar.

Namenlos gezeichnet in vollem Bewusstsein - ignorant, in eigen Augen vermutlich höflich, dennoch unhöflichst, unfreundlichst wer einen/viele vermutete - sich von alters erschließende Namen nennt.
[b]

Vielen Dank für die tolle und rasche Hilfe, die Klammer rund um die 4 "oder" war die Lösung.
LG Günther

Hi,

Can work in this formula

f=_IF_(@OBJ@.eq.0.and.(@2040@.eq."Möbel".or.@2040@.eq."Elektro".or.@2040@.eq."Pflanzen".or.
@2040@.eq."Tracht"))"2"_ELSE__IF_(@OBJ@.eq.0)"1"_ELSE_"0"

Hatem OZDEMIR
Architect | Allplan Trainer | BIM Manager
Website: http://www.mimcad.com
Website: http://www.bimakademi.com
e-mail: hatemozdemir[at]gmail.com
Ankara / Turkiye
LinkedIn-Profil
YouTube

Hi,
many thanks for the support!!!
Günther