Как объединить ячейки в html таблице если они похожи?
Наверное, я перегибаю, но...<table border>
    <thead>
        <td>ПН</td>
        <td>ВТ</td>
        <td>СР</td>
        <td>ЧТ</td>
        <td>ПТ</td>
        <td>СБ</td>
        <td>ВС</td>
    </thead>
    <tr id="state">
        <td>Выходной</td>
        <td>Выходной</td>
        <td>Выходной</td>
        <td>Выходной</td>
        <td>15-21</td>
        <td>15-21</td>
        <td>16-21</td>
    </tr>
</table>var 
    $Table = $("<table />"),  
    $Thead = $("<thead />").appendTo($Table), 
    $Row   = $("<tr />").appendTo($Table),
    $_tds  = $("#state td"),  $_heads = $("thead td"),
start, i = 0;

for(; i < $_tds.length; i++){
  start = i; 
  while(
     $_tds.get(i++) && $_tds.eq(i).text() == $_tds.eq(i - 1).text()
  ){}

  $Row.append(
      "<td>" + $_tds.eq(--i).text() + "</td>"
  ); 
  $Thead.append(
      "<td>" + (i == start ? "" :  $_heads.eq(start).text() + "-") + $_heads.eq(i).text() + "</td>"
   );
}

$("table").replaceWith($Table);
jsfiddle.net/In4in/6ruk1j3r
В начале строите массив с данными,  которые есть.
На основе этого узнаете какие данные не уникальны - и стоите ваш HTML.