Výsledky 1 až 6 z 6

Téma: [excel, mozna perl?] konverze vycet -> rada

  1. #1
    Moderátor Avatar uživatele wong
    Založen
    08.11.2002
    Bydliště
    Brno
    Věk
    42
    Příspěvky
    2 452
    Vliv
    310

    Standardní [excel, mozna perl?] konverze vycet -> rada

    jde o tohle:
    mam v bunce => a potrebuju tam mit
    15-20,23 =>15,16,17,18,19,20,23
    2,4-8,11 => 2,4,5,6,7,8,11

    jak to udelat v excelu netusim, jestli to vubec jde. na nejaky search&replace ani nemyslete - jsou tam cisla 1-30 ve vsemoznych vyctech. ma to 1800 radku
    jeden napad by tu byl - exportovat to do csv a prohnat to v perlu pres nejaky regularni vyrazy nebo tak neco. ale to nevim jak. perl neznam.

    diky za kazdou radu

  2. #2

    Standardní

    s excelom to asi nerozchodis, ale sak si linuxak tak by si mohol vediet ze to zvladnes aj grepom skrz sed tj xls > csv > grep+sed > xls, done
    Sound (Sennheiser HD 580 + Meier Corda Move) just great
    Workstation (Intel i5 4590 + Noctua DH14×Asus Z97-A×24GB DDR3×480GB Sanmsung 850 Pro + 1TB WD + 1TB WD + 1TB Samsung+×MSI N760 TF 2GD5/OC ×Enermax Pro82+ 425W×Antec Solo Modded×Dell UltraSharp U2713HM 27"×Logitech MX3200×Inspire T3030) not so silent anymore
    Photo (Sony A6000×32GB SD×stuff×Crumpler Long Schlong+Tenba D-15c×Velbon V2000×Lomo LC-A) creative
    Notebook (IBM ThinkPad T420s×nejaká i5×240GB Samsung 850Pro×8GB RAM×dve baterky×blabla) mobile
    Neděkujte, nenadávejte, pokud se vám něco líbí nebo nelíbí, používejte prosím reputaci (tj. ikonka s vahami pod avatarem), už můžete i "anonymně".

  3. #3
    Administrátor mince Avatar uživatele Jezevec
    Založen
    08.10.2002
    Bydliště
    Teplice
    Příspěvky
    6 738
    Vliv
    300

    Standardní

    Pokud ses kamos s VB od M$, tak to udelas i primo v excelu. Podstatny je, estli to ma vsude stejnej format => bud jednotlivy cislo nebo rozsah s pomlckou a oddeleni carkou.
    Pak by melo jit nacist bunku, rozparsova ji podle carky, to pole co ti vznikne projit a pokud v zaznamu je pomlcka tak to hodit jako meze do cyklu.
    IMPROBE AMOR, QUID NON MORTALIA PECTORA COGIS - krutá jsi, lásko, kam až ty doženeš smrtelná srdce -- Vergilius
    Mnoho je prostředků, které léčí lásku, ale žádný není spolehlivý.
    S tím, čeho se na nás dopustili druzí se už nějak vyrovnáme. Horší je to s tím, čeho jsme se na sobě dopustili sami.
    -- Francois La Rochefoucauld
    Nabídnout přátelství tomu, kdo chce lásku, je jako dát chleba tomu, kdo umírá žízní.

  4. #4
    Junior Member
    Založen
    20.10.2005
    Bydliště
    Sabinov
    Věk
    47
    Příspěvky
    15
    Vliv
    0

    Standardní [excel, mozna perl?] konverze vycet -> rada

    Da sa to jednoducho spravit tak ako uviedol Jezevec. napises si na to kratky "pogramik" vo VB priamo v Exceli a prezenies to cez tych 1800 riadkov.

    Robi v tom aj ine veci a toto by mala byt malina
    SSDD - same shit, different day ...

  5. #5
    Moderátor Avatar uživatele wong
    Založen
    08.11.2002
    Bydliště
    Brno
    Věk
    42
    Příspěvky
    2 452
    Vliv
    310

    Standardní

    to bych musel ve VB umet a taky mit excel - no mohl bych to udelat na jinym pc. tady mam OOo a vyresil sem to nakonec neco pres pulhodinovym search&replace

  6. #6
    Senior Member
    Založen
    22.07.2003
    Bydliště
    Ostrava - Homeless putující světem
    Příspěvky
    731
    Vliv
    276

    Standardní

    wong, teda ze ses to ty, tak ti to napisu
    v excelu; otevres VBA editor a vlozis modul
    do modulu zkopirujes tento kod, a pak tu funkci budes mit mezi Vlastnima

    Kód:
    Function Konverze_vycet(Bunka)
    
    For i = 1 To Len(Bunka.Text)
    
      If Right(Left(Bunka.Text, i), 1) = "-" Then
        For j = 1 To Len(Konverze_vycet)
          StartNo = Right(Konverze_vycet, j)
          If Left(StartNo, 1) = "," Then
            StartNo = Right(StartNo, Len(StartNo) - 1)
            Exit For
          End If
        Next
        For j = 1 To 100
          EndNo = Left(Right(Bunka.Text, Len(Bunka.Text) - i), j)
          If Right(EndNo, 1) = "," Then
            EndNo = Left(EndNo, Len(EndNo) - 1)
            Exit For
          End If
        Next
        Konverze_vycet = Left(Konverze_vycet, Len(Konverze_vycet) - Len(StartNo))
        For j = Val(StartNo) To Val(EndNo)
          Konverze_vycet = Konverze_vycet & CStr(j) & ","
        Next
        i = i + Len(EndNo) + 1
       Else
        Konverze_vycet = Konverze_vycet & Right(Left(Bunka.Text, i), 1)
      End If
    
    Next
    
    End Function
    Autor tohoto příspěvku je zpráskaná LAMA. Absolvoval 6 tříd ZŠ. Proto berte obsah příspěvku s rezervou.

Informace o tématu

Users Browsing this Thread

Toto téma si právě prohlíží 1 uživatelů. (0 registrovaných a 1 anonymních)

Pravidla přispívání

  • Nemůžete zakládat nová témata
  • Nemůžete zasílat odpovědi
  • Nemůžete přikládat přílohy
  • Nemůžete upravovat své příspěvky
  •