Below is the search i created taking dummy data as per your requirement :
| makeresults
| eval Text="X:2018-11-01:NULL:NULL,Y:NULL:2018-11-03:2018-12-02,Z:NULL:2018-12-05:NULL,W:NULL:NULL:2018-12-10"
| makemv Text delim=","
| mvexpand Text
| eval field_Name=mvindex(split(Text,":"),0)
| rex field=Text "(X|Y|Z|W)\:(?<date>.*)"
| makemv date delim=":"
| mvexpand date
| table _time date field_Name
| eval Month=strptime(date,"%Y-%m-%d")
| eval Month=strftime(Month,"%b") | fillnull Month value=0 | chart count(field_Name) as count over Month by field_Name | search Month!=0
Let us know if it works.
... View more