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ů: 22
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


Analýza klíčových slov pomocí nástrojů Marketing Miner a Calc.

Offline

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

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

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);"")

Moje e-mailová adresa
Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte orientaci při vyhledávání řešení 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ů: 697

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.4.

Offline

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

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

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.4.

Offline

Zápatí