Just in case this kind of programming code interests you.
Please find attached the related code as a PDF, highlighting the important bits. If you want to dig into the code itself, find the related Tiddler in
my Tifoist project.
I've the following search criteria for retrieving tiddlers (tagged as "fact" tiddlers.)

There are, at the moment, seven kinds of errors checked by the filtering process.
"Ignore Errors" will give all fact tiddlers.
"Non-Errors Only" will give all fact tiddlers that have none of the seven kinds of errors.
"Errors Only" will give all fact tiddlers that have one or more of the kinds of errors checked.
Although I'm sure I'll be refactoring my code at some point, I've had an awful lot of fun putting together what I have now.
A little bit of the code pasted below to entice you to delve into the details???
Cheers !
<fieldset>
<legend> Error Status</legend>
<$radio tiddler=<<DataTid>> index="qbe_fact_status" value="Fact"> Ignore Errors </$radio><br>
<$radio tiddler=<<DataTid>> index="qbe_fact_status" value="FactOk"> Non-Errors Only </$radio><br>
<$radio tiddler=<<DataTid>> index="qbe_fact_status" value="FactErr"> Errors Only </$radio>
</fieldset>
<!--🟠Qbe: Error Status-->
<$vars nSmarts=7 vSmarts={{{ [<currentTiddler>get[description]then[FactOk]else[FactErr]regexp<qbeErrStatus>then[a]] [<currentTiddler>get[c1]then[FactOk]else[FactErr]regexp<qbeErrStatus>then[b]] [<currentTiddler>get[c1]get[pk]then[FactOk]else[FactErr]regexp<qbeErrStatus>then[c]] [<currentTiddler>get[c2]then[FactOk]else[FactErr]regexp<qbeErrStatus>then[d]] [<currentTiddler>get[c3]then[FactOk]else[FactErr]regexp<qbeErrStatus>then[e]][<currentTiddler>get[c3]get<vC3CheckField1>then[FactOk]else[FactErr]regexp<qbeErrStatus>then[f]][<currentTiddler>get[c3]get<vC3CheckField2>then[FactOk]else[FactErr]regexp<qbeErrStatus>then[g]] +[count[]]}}}>
<$list filter="[<qbeErrStatus>match[Fact]then<vFact>] [<qbeErrStatus>match[FactOk]then<vSmarts>match<nSmarts>then<vFact>] [<qbeErrStatus>match[FactErr]then<vSmarts>!match[0]then<vFact>]">