Talking about doing something to improve speed, we cannot hope to give you a faster way to do this without knowing just a little more about your data sets.
Let's take that description of the input sheets. You said you have a row with a date and time in it plus some number of Boolean inputs recorded in the sheet. You are looking for something to change in the Boolean columns. So...
1. Do all of the columns change exactly once in the data set or can the inputs toggle back and forth more than once?
2. Do all of the columns always start in a predictable state? (Like always FALSE, e.g.)
3. If the inputs toggle back and forth, do you need to trap each transition or only the first one or only the transitions to TRUE?
Knowing this, we might be able to help with something a bit faster than the method I suggested earlier.
1. Do all of the columns change exactly once in the data set or can the inputs toggle back and forth more than once?
Back and forth at any time
2. Do all of the columns always start in a predictable state? (Like always FALSE, e.g.)
No.
3. If the inputs toggle back and forth, do you need to trap each transition or only the first one or only the transitions to TRUE?
Yes
This is a Safety PLC, I'm in a chemical plant making explosive products. Part of the permits to operate require us to follow rules established by IEC International Electrotechnical Commission and ISA International Society of Automation. These safety functions are all results of a long drawn out process to derive at RRF number, risk reduction factor, which by selection of equipment we try to mitigate any faults and prevent catastrophic events from happening.
Part of the over all calculation used also leans on the amount of times the system has a "Demand Event"...too many Demands and we have to redesign and recertify the system, statistics say too many demands means an eventual failure of the safety system and oops.
Each column is either an input/output/or Memory point. Its monitoring the function of a safety PLC. Each row is a time interval of 200 milliseconds with a time and date stamp.
Here's the trick, only a selected group of triggers are used to indicate a "Demand" And that demand says our process was out of it's limits and we had to provide a safety interlock. But, that is not always true, an oddball bit can start the interlock process and the end result appears to be a demand but may not be.
When a "demand" is seen, the system has a program tracking all the points (columns), five minutes before the event and two minutes after the event at 200 millisecond intervals and generates this excel file. They were having some problems with on of the units and couldn't find the problem. I took a look at the file, figure 184 columns of ones and zero's and 2000 rows of them switching back and forth and truing to determine who was the real fault. So I wrote this little program to capture each time a bit changed state and we found it which turned out to be a loose connection in a limit switch, only toggled for one scan but started a domino effect. Thats not considered a "Demand" due to process conditions, thats an equipment fault, goes into another category.
No good deed goes unpunished, next thing I know they hand me a portable drive with just over 14K files, a few years of history, process these and let us know the results of each.
Sorry for the long winded post, just thought some back ground might help. So far I'm just using the bloat program and stopping it after 300 files. The excel was working with no bloat but I kept getting errors opening and closing the excel files and couldn't work my way around it so after three days of hair pulling, (which this old head can't afford) I gave in and went back other way.
I'll post the code tomorrow and tell you the error, maybe we can figure it out, I'm not a learned programmer, so please don't laugh at my coding style. I'm an ex field grunt who does programming on control systems which is far different and mainly in proprietary and basterdized control languages.
I do appreciate the help and I have learned how much I really need to learn.