Het beschreven gedrag klopt: als je een Invantive Control blok hebt dat loopt van bijvoorbeeld A10 t/m C100, dan zal bij een synchronisatie eerst de inhoud van het blok “omhoogrollen” als een elastiekje dat losschiet en daarna opnieuw gevuld worden waarmee de onderkant omlaag gaat. Verwijzingen naar cellen in het bereik A10:C100 zullen dan verdwijnen of ongeldig worden.
Dat is bewust zo gemaakt, omdat het van te voren niet zeker is welke gegevens waar zullen staan gezien het dynamische karakter van de blokken.
INDEX Excel-formule
Er is altijd de mogelijkheid om te werken met de INDEX
formule. Hiermee kun je dynamisch binnen een Excelbereik zoeken. De meeste gebruikers geven bij elk blok de namen van de Excelbereiken op voor de gegevens en de gegevens met kop.
Stel het Excelbereik blk_data
beschrijft de daadwerkelijke gegevens, dan kun je met INDEX in dit bereik zoeken zoals in onderstaand voorbeeld:
Het prettige is dat de INDEX-formule ook meerdere cellen kan selecteren: een bereik, bijvoorbeeld de volledige derde kolom en die dan gebruiken in een SOM-formule zoals met:
Excel-tabel
Daarnaast is het ook mogelijk om gebruik te maken van Excel tabellen. Meest wezenlijke verschil is dat een kolom een naam krijgt:
Celreferentie Expressies
Binnen het blok zelf kun je in de SQL statements werken met Invantive Control celreferentie expressies.
Er zijn meerdere mogelijkheden om met de gegevens in een blok verder te werken buiten het blok. Als je bijvoorbeeld de volgende query gebruikt:
select 'hi' txt
, '=$C{E,.,.,^,.}' celreferentie_expressie
from range(10)@datadictionary
dan zal op elk van de 10 regels die het blok zal bevatten de tweede kolom een Excel-formule bevatten die wijst naar de eerste kolom.
Het samenstellen van Excel celreferentie expressies staat in de documentatie, maar de meest voorkomende zijn ook via Bouwblok rechtstreeks in een SQL-statement in te voegen:
Het is erg praktisch om efficiente Excel-formules mee te maken, maar het is echter bijzonder onpraktisch om te gebruiken vanuit cellen buiten een blok.