JSFiddle - React, Tailwind, and code Playground

HTML

<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.css">
<script src="https://code.jquery.com/jquery-3.4.1.slim.js"></script>
<form name="formular1" oninput="j_calculate(event)">
  <div class="input-group">
  <div class="titel">Zeile1</div>

  <div class="wert"><input id="EingabeZ1S2" value="" /></div>
  <div class="wert"><input id="EingabeZ1S3" value="" /></div>
  <div class="wert"><input id="EingabeZ1S4" value="" /></div>
  <div class="summe"><input id="SummeZ1"></div>
</div>
<div class="input-group">
  <div class="titel">Zeile2</div>

  <div class="wert"><input id="EingabeZ2S2" value="" /></div>
  <div class="wert"><input id="EingabeZ2S3" value="" /></div>
  <div class="wert"><input id="EingabeZ2S4" value="" /></div>
  <div class="summe"><input id="SummeZ2"></div>
</div>
<div class="input-group">
  <div class="titel">Zeile3</div>

  <div class="wert"><input id="EingabeZ3S2" value="" /></div>
  <div class="wert"><input id="EingabeZ3S3" value="" /></div>
  <div class="wert"><input id="EingabeZ3S4" value="" /></div>
  <div class="summe"><input id="SummeZ3"></div>
</div>
<div class="input-group">
  <div class="titel">Erg: 4</div>

  <div class="wert"><input id="SummeS2" value=""/></div>
  <div class="wert"><input id="SummeS3" value=""/></div>
  <div class="wert"><input id="SummeS4" value="" /></div>
  <div class="summe"><input id="SummeTotal"></div>
</div>
</form>

JavaScript

function getEingabefeld(spalte, zeile) {
   return document.getElementById("EingabeZ"+zeile+"S"+spalte);
}
function getSpaltensummenfeld(spalte) {
   return document.getElementById("SummeS"+spalte);
}
function getZeilensummenfeld(spalte) {
   return document.getElementById("SummeZ"+spalte);
}
function getEingabewert(spalte, zeile) {
   return getInputAsFloat(getEingabefeld(spalte, zeile));
}

const anzahlSpalten=4,
      anzahlZeilen=3;
      
function getSpaltensumme(spalte) {
	let summe=0;
	for (let zeile=1; zeile<=anzahlZeilen; zeile++) {
		summe += getEingabewert(spalte, zeile);
	}
  return summe;	
}

function getZeilensumme(zeile) {
	let summe=0;
	for (let spalte=1; spalte<=anzahlSpalten; spalte++) {
		summe += getEingabewert(spalte, zeile);
	}
  return summe;	
}	

function getInputAsFloat(element)
{ return (element
         ? parseFloat(element.value.replace(/[^0-9 ]/g, "")) || 0
         : 0);
}

function j_calculate(e) {
   console.log("calculate " + e.target.id);
   for (spalte = 1; spalte <= anzahlSpalten; spalte++) {
      getSpaltensummenfeld(spalte).value = getSpaltensumme(spalte);
   }
   
   let total = 0;
   for (zeile = 1; zeile <= anzahlZeilen; zeile++) {
      let zeilensumme = getZeilensumme(zeile);
      getZeilensummenfeld(zeile).value = zeilensumme;
      total += zeilensumme;
   }
   document.getElementById("SummeTotal").value = total;
}