Calc - převod hodnot na text

Zdravím Vás a prosím o radu.
Je možné převést několik různých hodnot umístěných v jedné buňce pod sebou do textové podoby (opět v jedné buňce pod sebou dle zadaného seznamu hodnot? Seznam hodnot by byl ve formátu A1 hodnota1 B1 význam hodnoty1. Tedy v seznamu by byla na řádku pouze 1 hodnota. Hodnoty by byly ve formátu X123 (písmeno a 3 číslice).
Děkuji. J

Doplňuji jednoduchý příklad. Jedná se mi o vzorec pro buňku B2 v listu hodnoty. Chtěl bych, aby se do ní automaticky vypisoval význam hodnot ve sloupci A1, podle seznamu na listu seznam. Děkuji.
priklad.ods

Vzorec funguje na celou buňku, takže nejprve pomocí Data> Text do sloupců rozdělit pod sebe do řádků a pak použít vzorec =VLOOKUP(A2;$seznam.A1:B3;2)

Děkuji, toto funguje, ale konkrétní tabulka obsahuje i jiné sloupce s daty a při tomto postupu se to rozpadne. Vím, že chyba je v koncepci tabulky, ale je tam spousta údajů a předělávat celé se mi to nechce.

Tak vzorec makrem je níže, použije se =HODN(adr) přičemž adr je buňka ze které se bude brát text který se má nahradit, tedy např. do buňky B2 dáte =HODN(A2).

Global pole()
Function HODN(optional s$) as string 'vrátí nahrazení data z buňky v proměnné 's' dle toho co je zadáno v prvních dvou sloupcích v listu 'seznam'
	on local error goto konec 'při chybě neotravovat
	const sList="seznam" 'list s náhradami - bacha ať v něm nejsou prázné řádky, zbytečně by to zpomalovalo nebo možná i blblo
	dim oDoc as object, oList2 as object, oCur as object, oRange as object, i&, a$, b$
	oDoc=thisComponent
	oList2=oDoc.Sheets.GetByName(sList) 'jméno listu odkud se budou čerpat data pro nahrazování
	oCur=oList2.createCursor()
	oCur.goToEndOfUsedArea(true)
	if ubound(pole)=-1 then pole=oCur.getDataArray 'data pro substituční pole, když není pole vytvořeno tak jej načte z listu s náhradami
	for i=lbound(pole) to ubound(pole)
		a=pole(i)(0) 'co nahradit
		b=pole(i)(1) 'čím nahradit
		s=join(split(s,a),b) 'nahrazení v řetězci
	next i
	HODN=s
konec:
End Function

Bacha na to když makro budete mít v jiné knihovně než v daném sešitě, to se vám pak po načtení sešitu neprovede, ale po otevření sešitu budete muset dát aktualizovat vzorce.

Když upravíte data v listu seznam, tak budete muset zavřít Libre a načíst soubor znova, aby se v každém vzroci zbytečně nenačítala ta substituční data. Když tohle nebudete chtít absolvovat, tak si zakomentujte tu podmínku if ubound(pole)… a na další řádek si z ní dejte to pole=oCur…, ale pak se vám to nejspíš celé notně zpomalí. Ale jak jsem zkoušel tak to nemusí to fungovat pořádně, to zavření Libre a načtení sešitu znova je asi nejlepší.

Taky pokud budete mít stovky a víc těch náhrad a ten vzorec v mnoha buňkách, tak to nebude nijak závratně rychlé. Ukázka v souboru zde: uprava2.ods

Ano. Ideálně v jedné buňce. if nepřichází v úvahu, je toho moc. To by bylo jednoduší to předělat celé a dál už to dělat jinak.

Děkuji, funguje.