Блондинка,
я не понимаю чего вы пытаетесь сотворить и почему куча таблиц вместо одной, но если нужно установить размеры ячеек одной таблицы по колонкам, то tbl.rows[0].cells.length, а далее согласно своим условиям для всех ее строк.
Но зачем это все для таблицы я вообще не понимаю. Размер ячейки таблицы будет зависеть от ее содержания и если указать первой ячейке размер фиксированный, и содержимое ячеек помещается в них свободно, то остальные ячейки сами примут равные размеры в процентном соотношении от ширины таблицы минус размер первой ячейки. Другое дело если нужно жестко указать размеры ячеек таблицы, в которые разместить содержимое. Или же используется не таблица, а иные элементы, вот тогда flex, grid. Выше у вас flex и чем он вас не устраивает не знаю, ведь размеры будут рассчитываться все равно от родителя. Коли вы точно хотите подогнать их, то учитывайте размеры всех элементов и их стилей. Например, посредством скрипта, для div и сетки:
<style>
.wrapper {
width: 314px;
margin: 1px;
display: grid;
grid-gap: 1px;
}
.wrapper > div {
border: 1px solid #ddd;
padding: 4px;
}
table {
border-collapse: separate;
width: 315px;
}
td {
border: 1px solid #ddd;
padding: 4px;
}
td:first-child {
width: 52px;
}
</style>
<div class="wrapper">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
</div>
<div class="wrapper">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
</div>
<div class="wrapper">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
<div>7</div>
</div>
<table>
<tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td></tr>
</table>
<script>
document.querySelectorAll('.wrapper').forEach((a)=> {
a.style.gridTemplateColumns = '62px repeat('+(a.children.length-1)+',1fr)';
})
</script>
и посмотрите итоговые размеры в разметке отладчика, из чего они складываются. А таблица она и без посторонней помощи получится.