Autor Zpráva
josefk
Profil *
Zdravím,

chtěl bych si udělat v Google sheets tabulku s aktuálními cenami na eshopu, ale z nějakého důvodu mi systém vždy naformátuje číselnou hodnotu jako text.

k importu ceny využívám funkci IMPORTXML a následně odstraním textové znaky (CZK a ,) přes funkci REGEXREPLACE. na buňce mám nastavené toto:
=REGEXREPLACE(IMPORTXML(F9; "//span[@class='price']"); "[^\d\.]+"; "")

Link na web, ze kterého se snažím data dostat.

Bez úspěchu jsem zkusil změnit typ buňky přes formát > číslo > měna a také pře funkci VALUE, pak jsme zkoušel asi 2 hodiny googlit, ale nenašel jsem nic, co by fungovalo.

Dokázal by mi někdo poradit, jak v tomto případě změnit typ buňky na číselnou hodnotu, abych s tím mohl dále pracovat? Chápu, že to není úplně o tvorbě webu, ale nevím o jiném místě, kde bych se mohl na něco podobného zeptat.
Radek9
Profil
josefk:
Přičti k tomu 0.

Edit: Funkce VALUE by, jak tak koukám, měla dělat to samé. Ono ještě záleží, v jakém locale (jazykovém prostředí) ten spreadsheet je (File -> Settings -> Locale). Možná proto budeš ještě muset nahradit desetinnou tečku za čárku (třeba přes SUBSTITUTE).
josefk
Profil *
Zkusil jsem tabulku přehodit do regionu Spojených států, protože tam se kombinace , pro oddělení tisíců a . pro oddělení desetinných míst využívá a vše začalo fungovat, resp. buňka, ve které se hodnota objeví jako první stále nejde převést z textu, ale když v další buňce data vynásobím množstvím, už se to jako číslo chová. Jen se mi po změně regionu místo Kč objevoval symbol dolaru. To by mi ani tak nevadilo, ale chtěl jsem zkusit ještě tabulku v češtině, kam bych dal ten SUBSTITUTE, pak mě ještě napadlo k výsledku přidat VALUE, aby se výsledek převedl na hodnotu a tedy na číslo. Kdyby někdo také hledal řešení, zbastlil jsem tohle:
=VALUE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(IMPORTXML(F3; "//span[@class='price']");"CZK ";""); ","; ""); "."; ","))

Formát ceny:
CZK 1,234.56

První SUBSTITUTE SUBSTITUTE(IMPORTXML(F3; "//span[@class='price']");"CZK ";"") odstraní CZK a mezeru, takže zbyde 1,234.56,

druhý SUBSTITUTE SUBSTITUTE(první SUBSTITUTE; ","; "") odstraní desetinnou čárku k oddělení tisíců, takže zůstane 1234.56,

třetí SUBSTITUTE SUBSTITUTE(druhý SUBSTITUTE; "."; ",") vymění desetinnou tečku za čárku, výsledek bude vypadat 1234,56.

To je ale stále text, i když už si s ním Google sheets poradí a dokáží ho například vynásobit. Protože už je ale číslo v českém formátování, lze data v buňce přes VALUE převést na číslo VALUE(třetí SUBSTITUTE).

Zdá se, že je vyřešeno, díky za radu.

Vaše odpověď

Mohlo by se hodit

Zvažte, zda se neobrátit na specializované fórum, toto se zabývá především webovou problematikou.

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0