せいくらべ──原作 vs 実写という記事で使っているスクリプトです。
(function () {
'use strict';
  var $t = document.getElementsByTagName('table');
  if($t == null)
    return;
  function isNumber(x){
    if( typeof(x) != 'number' && typeof(x) != 'string' )
      return false;
    else
      return (x == parseFloat(x) && isFinite(x));
  }
  var tlen = $t.length;
  for(var i=0; i<tlen; i++){
    var table = $t[i];
    var c = table.getAttribute('class') || table.getAttribute('className');
    if(c !='saki-tall') continue;
    var tr = table.getElementsByTagName('tbody')[0].getElementsByTagName('tr');
    var tl = tr.length;
    for(var j = 0; j < tl; j++){
      var td = tr[j].getElementsByTagName('td');
      var tall1 = td[1].textContent * 1,
          tall2 = td[3].textContent * 1;
      if(!isNumber(tall2) || tall2 <= 0){
         td[4].classList.add('noData');
      }
      else{
        var ratio = (tall2 / tall1 - 1) * 100,
            ri = Math.abs(parseInt(ratio * 10));
        td[4].style.backgroundColor = 'rgb('
           + (255 - (ratio>0? ri:0)) + ','
           + (255 - ri) + ','
           + (255 - (ratio<0? ri:0)) +')',
        td[4].textContent =
           ((ratio > 0)? '+': (ratio==0)? '±': '') + ratio.toFixed(1);
      }
    }
  }
}());
む、よく見たらtall1(キャラの身長)が0の時の場合分けをしていない。
そもそも身長データが存在するキャラしかいないので問題ないんですが、ちょっともやもやするわね…
キャストの身長が高い時はbackground-colorプロパティに指定するrgb()関数の赤と緑の数値を減らして青っぽくし、低い時は青と緑の数値を減らして赤っぽくしています。

ちなみにnoDataというCSSクラスは
td.noData{
  background: #ccc;
  text-align: center!important;
}
td.noData::before{
  content:'──';
}
こんな感じ。算出元のデータが無い時、背景色をグレーにして横棒を表示します。

なお、変数が数値かどうかを判定するisNumber()関数は、こちら↓のサイト様の記事からコピペさせていただきました。
JavaScript で数値判定 - にょきにょきブログ
ここに記して御礼申し上げます。