This table does read best in listed format, as you have done. I played around with other ideas but all were cumbersome.
When a table is printed with the entry fields showing, the horizontal lines are not underscores. In this table, omissions are blank entries. Follow Braille Formats to represent a blank entry.* Three unspaced guide dots represent the blank entry. (BF 11.16.1.h; BF Sample 11-24 illustrates a blank entry.) Add the explanation to your transcriber’s note. "A series of three guide dots indicates a blank entry." Since guide dots can be used in either UEB or Nemeth context, there will be no need to switch codes in order to transcribe them.
There are different ways you could arrange the code switches. I suggest placing them where reading is least disturbed or to maintain a pattern. Like this:
Line 16: Replace the long dash with three dot 5's. (staying in Nemeth)
Line 17: Replace the long dash with three dot 5's (staying in Nemeth) followed by the NC terminator.
Line 18: Stay in UEB to transcribe the guide dots; insert the opening NC indicator after the guide dots. This placement allows "p(midpoint):" to begin in cell 1 on line 19 where expected.
Line 19: To match line 17, keep the guide dots inside the switches and then terminate Nemeth after them. Another option would be to place the colon after the NC terminator, followed by the guide dots.
Line 20: No switch indicator is necessary; replace the long dash with three dot 5's.
*Exceptions: In a stem and leaf plot blank entries are left blank. (NC 26.10.1.d) In a matrix, blank entries are represented by a short dash (NC 25.8.1)