Fórum pro uživatele kancelářského balíku OpenOffice | LibreOffice
 

#1 23. 2. 2017 16:52:41

filius
Člen
Registrace: 2. 4. 2014
Příspěvků: 19
Web

Přidání dimenze, když sloupec obsahuje určitý řetězec

Zdravím,
prosím poradíte funkci, která umí to, že když se v prvním sloupci nachází určitý řetězec, např. pracovní boty, tak ve druhém sloupci vytvoří patřičný řetězec, např. produkt? Viz obrázek:

klicovka


Pracuji jako SEO konzultant a dělám návody o tom, jak využít Calc pro SEO.

Offline

#2 23. 2. 2017 17:33:15

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 2,579

Re: Přidání dimenze, když sloupec obsahuje určitý řetězec

Například

=IF(SEARCH("pracovní oděvy";A1;1)=1;"PRODUKT " & RIGHT(A1;LEN(A1)-17);"")

Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte tak orientaci na fóru při vyhledávání řešení problémů
JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#3 23. 2. 2017 18:58:03

ludviktrnka
Člen
Registrace: 9. 7. 2009
Příspěvků: 514

Re: Přidání dimenze, když sloupec obsahuje určitý řetězec

Asi bych volil trochu obecnější formulaci ale na stejném principu. Není potřeba aby to bylo na začátku ani v daném pořadí.

=IF(AND(ISNUMBER(SEARCH("pracovní";A1));ISNUMBER(SEARCH("boty";A1)));"produkt";"")

LibreOffice 5.2.2.2

Offline

#4 24. 2. 2017 10:13:24

ludviktrnka
Člen
Registrace: 9. 7. 2009
Příspěvků: 514

Re: Přidání dimenze, když sloupec obsahuje určitý řetězec

Kdybyste chtěl řešení makrem (na hodně řádků by se to mohlo hodit), tak něco by tady bylo. Měl jsem takovou podobnou funkci, trošku jsem ji upravil

Sub dopln_znacky

dim vstup as string
dim doc as object, oblastF as object, list as object, FandR as object, oCell as object
dim TextRow as integer

	doc = thisComponent
	'list = doc.Sheets.GetByName("list1")
	list = doc.getCurrentController.getActiveSheet()

	oblastF = list.getCellRangeByName("A2:A30000")
   
    vstup = inputbox ("Zadejte hledanou hodnotu" , "VSTUP")
   
    If vstup = "" then
    	Exit Sub
    end if
    
'    list.getCellRangeByName.select("A2")
    
    FandR = oblastF.createSearchDescriptor()
    FandR.setSearchString(vstup)
    FandR.SearchWords = false 'Entire cell must match.
    oCell = oblastF.findFirst(FandR)
	If isNull(oCell) then
    	Exit Sub
	End if
    TextRow = oCell.CellAddress.Row
    list.getCellByPosition(1, TextRow).String = "produkt"
    
    Do while not IsNull(oCell)
       	oCell = oblastF.findNext(oCell, FandR)
	   	if IsNull(oCell) Then
	   		Exit Sub
	   	End If
	   	TextRow = oCell.CellAddress.Row
    	list.getCellByPosition(1, TextRow).string = "produkt"
       	'print TextRow
    Loop 

End Sub

LibreOffice 5.2.2.2

Offline

Zápatí