Wow! Fantastic. That worked!
Thanks for the ingenious solution, Mr. Rick Rothstein.
You are quite welcome, but I have a change you need to make in order to keep the code completely self-contained. Here is the formula I gave you to put in cell G5 and then copy across and down...
=IF(3*ROWS($5:5)>=
24,"",INDEX($D:$D,3*ROWS($5:5)+1+COLUMNS($G:G)-1))
The main problem with this formula as written is the number I highlighted in red... it must be the row number of the last row with data in it and, as the formula stands now, it must be updated when your data changes. To make this formulas completely automatic, we need to make the formula calculate the last used row number on its own. Unfortunately, the code to do that is resource intensive and including it the main formula so that it is replicated each time the cell is copied across and down would overwhelm your system's resources quite quickly. The way to overcome this problem is to place the formula for calculating the last row in a cell by itself (so that it is executed only once) and replace the red highlighted number above with a reference to that cell. This formula...
=SUMPRODUCT(MAX(ROW(D$1:D$
65535)*(D$1:D$
65535<>"")))
will calculate the row number for the last used row number in Column D. The two occurrences of 65535 are the last row number beyond which you know you will never have data... these numbers should be as small as you are able to make them to reduce the resources the formula uses to do its calculation; so, if you know you will never have data beyond, say, 2000, then change both 65535 values to 2000. Okay, now you need to put this formula in a cell somewhere... I'll assume cell F5. Now replace the red highlighted 24 in the original formula to $F$5 so that it now looks like this...
=IF(3*ROWS($5:5)>=
$F$5,"",INDEX($D:$D,3*ROWS($5:5)+1+COLUMNS($G:G)-1))
then place it in cell G5 and copy it across to cell I5, then copy those three cells down to our assumed last possible data row of 2000. Once you have done that, you will never have to touch Column's G, H or I again... just copy paste your new (fresh) data into the two-column range starting at cell C4 and the results in Columns G, H and I will update automatically.
Now, finally, about that formula I assumed you put in cell F5... if you think it looks "ugly" just sitting out there by itself, Custom Cell Format the cell using two semi-columns (;;) as the Custom Cell Format Type pattern and the number it displays will become invisible (unless someone selects that cell in which case its value would show in the Formula Bar).