It does. I understand high level what its doing but will need to walk through the specifics although It does get me where I needed to be. Here is what I ended up with:
index=anIndex sourcetype=aSourceType aString1 earliest=-481m@m latest=-1m@m
| eval age=now() - _time
| eval age_ranges=split("1,6,11,31,61,91,121,241",",")
| foreach 0 1 2 3 4 5 6 7 [ eval r=tonumber(mvindex(age_ranges, <<FIELD>>))*60, zone=if(age < 14400 + r AND age > r, <<FIELD>>, null()), aString1Count=mvappend(aString1Count, zone) ]
| stats count by aString1Count
| transpose 8 header_field=aString1Count
| rename 0 AS "string1Window1", 1 AS "string1Window2", 2 AS "string1Window3", 3 AS "string1Window4", 4 AS "string1Window5", 5 AS "string1Window6", 6 AS "string1Window7", 7 AS "string1Window8"
| appendcols
[search index=anIndex sourcetype=aSourceType aString2 earliest=-481m@m latest=-1m@m
| eval age=now() - _time
| eval age_ranges=split("1,6,11,31,61,91,121,241",",")
| foreach 0 1 2 3 4 5 6 7 [ eval r=tonumber(mvindex(age_ranges, <<FIELD>>))*60, zone=if(age < 14400 + r AND age > r, <<FIELD>>, null()), aString2Count=mvappend(aString2Count, zone) ]
| stats count by aString2Count
| transpose 8 header_field=aString2Count
| rename 0 AS "string2Window1", 1 AS "string2Window2", 2 AS "string2Window3", 3 AS "string2Window4", 4 AS "string2Window5", 5 AS "string2Window6", 6 AS "string2Window7", 7 AS "string2Window8" ]
| table string1Window* string2Window*
string1Window1 string1Window2 string1Window3 ...
44 42 40 ...
... View more