Formel ändernWie die Anhänge zeigen, ist die Formel der Spalte ROW(3) wirksam, allerdings nur für eine Zeile.
Die Formel in der Spalte „Verwendete For-Schleife“ wird wie unten farblich dargestellt angezeigt. Ich weiß, dass Formeln keine For-Schleifen enthalten können. Entfernen Sie daher die Teile der For-Schleife und ändern Sie „ :Scan input[i]“ in andere Ausdrücke oder andere Funktionen, um „ : Scan-Eingang[1] “ in „ : Scan input[Ende Zeilennummer] “ zu implementieren. Anschließend wird die Aktualisierung automatisch basierend auf jeder Zeile der Spalte „Scan input“ durchgeführt. Bitte helfen Sie, das zu korrigieren, danke!
For(i = 1, i <= N Rows(), i++,
If(Is Missing(:Scan input),
"",
If(Col Sum(:Blacklist == :Scan input[i]) > 0,
"NG",
"OK"
)
)
)
Automatisierung und SkriptingDatenexploration und -visualisierungWindowsBetreff: Formel ändernSie haben angegeben, dass eine Formel keine For-Schleife enthalten kann. Die eigentliche Aussage zu For-Schleifen in Formeln ist, dass es nicht notwendig ist, eine For-Schleife in einer Formel zu verwenden, um jede Zeile einer Datentabelle zu durchlaufen, da Formeln automatisch auf jede Zeile angewendet werden.
Wenn jedoch für jede Zeile eine For-Schleife ausgeführt werden muss, kann diese durchaus verwendet werden.
Hier sind 3 Möglichkeiten, eine Formel zu schreiben, die das meiner Meinung nach gewünschte Ergebnis liefert

If( Is Missing( :Scan input ),
theResult = "",
theResult = "OK";
For( i = 1, i <= N Rows( Current Data Table() ), i++,
If( :Blacklist == :Scan input[i],
theResult = "NG";
Break();
)
);
);
theResult;
If( Is Missing( :Scan input ),
"",
curBlacklist = :Blacklist;
If( N Rows( Current Data Table() << get rows where( :Scan input == curBlacklist ) ) > 0,
"NG",
"OK"
);
)
As Constant( Summarize( ScanList = by( :Scan input ) ) );
If( Is Missing( :Scan input ),
"",
If( N Rows( Loc( ScanList, :Blacklist ) ) > 0,
"NG",
"OK"
)
);
Betreff: Formel ändernDanke! Das korrekte Ergebnis in den Zeilen 3, 4 und 5 sollte jedoch NG anzeigen. Es wurde noch nicht gelöst.
Betreff: Formel ändernDanke!Das korrekte Ergebnis in den Zeilen 3 und 5 sollte jedoch NG anzeigen. Es wurde noch nicht gelöst.
Betreff: Formel ändernWie wird das Ergebnis „NG“ oder „OK“ bestimmt (in Worten, nicht als JSL)?
Betreff: Formel ändernDie von mir bereitgestellten Formeln betrachten alle den Wert der Black List für eine bestimmte Zeile und durchsuchen dann alle Zeilen nach Scan Input, um zu sehen, ob es eine Zeile mit demselben Wert gibt.
Ich muss das, was Sie versuchen, falsch interpretiert haben. Ich dachte, das wäre es, was Ihr bereitgestelltes JSL versucht. Können Sie beschreiben, was Ihre gewünschten Ergebnisse sind?
Betreff: Formel ändernDie Ergebnisse aller Blacklist-Spalten sind NG. Das tatsächliche Szenario ist, dass die von einer Vorrichtung hergestellten Produkte bereits als NG bekannt sind. Sie müssen ermittelt und mit einem Barcode-Scanner in die Spalte „Scan-Eingabe“ eingescannt werden. NG wird angezeigt, solange der Wert der Spalte „Scan-Eingabe“ in einer beliebigen Zeile der Blacklist-Spalte steht. Zeile 1 ist beispielsweise genau gleich und zeigt daher NG an. Zeile 3 ist nicht genau gleich, aber „X1“ erscheint in Zeile 1 der Blacklist-Spalte und muss daher NG anzeigen.
Betreff: Formel ändernSammeln Sie alle Blacklist-Werte in einer Liste/assoziativen Array und vergleichen Sie den aktuellen Zeilenwert mit dem
As Constant(
bl = :Blacklist << get values;
);
If(!IsMissing(:Scan input),
If(Contains(bl, :Scan input),
"NG"
,
"OK"
);
,
""
);

Betreff: Formel ändernDie Ergebnisse aller Blacklist-Spalten sind NG. In beliebiger Reihenfolge wird NG angezeigt, solange der Wert der Spalte „Scan-Eingabe“ in einer beliebigen Zeile der Blacklist-Spalte erscheint. Mithilfe der Formel lässt sich das defekte Produkt während des Scanvorgangs leicht finden.