Přičítání hodnoty +3 a export do txt souboru

Od: Datum: 05.06.13 19:14 odpovědí: 3 změna: 06.06.13 15:33

EXCEL - Přičítání hodnoty 3 od min. do max. hodnoty a export do txt souboru

Dobrý den přeju.
Jsem začátečník a bojuju s tímto problémem. Prosím Vás, nevíte někdo jak udělat v MS Excel tabulku, kdy v sešitu jedna určím v buňce B1 číslo se znakem např. +89100 (což je minimální hodnota) a v buňce B2 (maximální hodnota +89798) a potřebuju v tomto případě např. od čísla +89100 přičítat čísla po třech a některých případech po jedné, či po dvou (nejlépe dát do buňky B3 hodnotu pro připočítávání např. 3) přičítat do hodnoty do hodnoty v buňce B2 a tyto součty (pokud by bylo zadání např. po třech od +89100 až do +89798) by se v tomto případě vyházeli do sešitu dva a na řádku A1 až Ax pod sebe a to vše by se dalo vyexportovat do jednoho souboru txt, kde by čísla byli odřádkovány pod sebou takto (výsledek):
+89100
+89103
+89106
+89109
+89112
...až poslední číslo.
Předem děkuju za pomoc. Pozn. +musí být vždy před každým číslem.


Seznam odpovědí:
 
moment čekejte prosím, probíhá přenos dat...
Zobrazení struktury odpovědí v otázce
Skrytí struktury odpovědí v otázce
Zobrazení struktury odpovědí v otázce

 

Odpovědi na otázku:
Datum: 05.06.13 23:59
avatar

No, celkem jednoduše.

Do souboru napíšete pod sebe čísla od 0 do 100, možná víc, podle toho, kolik těch čísel v sérii může celkem být.

Bokem napíšete spodní hranici, horní hranici a velikost kroku.

Do sloupečku vedle prvního sloupečku dáte vzorec na způsob =minimum + první_sloupec * krok

Do třetího sloupečku doplníte připojení znamínka plus, tedy =concatenate("+";druhý_sloupec)

Na závěr, aby se to zastavilo při překročení maxima, tak tento vzorec ještě zabalíte do podmínky když, tedy: =když(druhý_sloupec <= maximum; ona_konkatenace; "")

Šlo by to i lépe, ale takhle to možná bude stačit. Aktuální hodnoty můžete třeba vkládat přes průvodce funkcí a vybírat myší. Snad je to trochu k pochopení.

Ohodnoceno: 0x
 
Datum: 06.06.13 13:00
avatar

promiňte, ale na začátečníka jste se pustil hodně vysoko. Uvědomte si prosím, že pokud před číslo potřebujete vložit znaménko+ a to číslo následně vyexportovat, pak nemůžete použít uživatelský formát buňky. Číslo by se vám vyexportovalo bez té značky +.

Číslo s textovým znakem se spojuje znakem ampersand &, to je takové to lepší a

="+"&A1

jenže je tu problém. Z čísla je v tu chvíli text.

Export se provádí přes makra, kdy potřebujete rutinu Sub napsanou ve VBA. Tady jedna je. Export začíná v buňce A1, postupuje směrem dolů, až se nakonec zarazí o první prázdnou buňku. No a na disku D: se objeví vyexportovaný soubor ve formátu txt. Ale jak jsem povídal, to do čeho se pouštíte není nic pro začátečníky.

*

Sub Export()
Dim PathName As String, Data As String
Dim Textfile As String, Filename As String
Dim Line As Byte
PathName = "D:"
Textfile = "Export.txt"
Filename = PathName & Textfile
Open Filename For Output As #1
Line = 0
Do
Data = ActiveSheet.Range("A1").Offset(Line, 0)
Print #1, Data
Line = Line + 1
Loop While Data <> ""
Close #1
End Sub

doplněno 06.06.13 13:16:

v proměnné PathName má být jen jedno lomítko. Nevím proč se mi tam objevily tři. Je to cesta adresářů, kterou si můžete upravit podle své potřeby.

PathName = "D:"

nebo

PathName = "D: abulky Excelexperimenty"

atd

Ohodnoceno: 0x
 
Datum: 06.06.13 15:33
avatar

Tak tímhle způsobem tam nemusí mít ani VBA, ani excel a officy. Úplně postačí powershell a něco takového: http://pastebin.com/qd0myhAS

Uložit třeba jako pricitani.ps1

Použití (za předpokladu, že máte nastavenou cestu a všechno, stačí ps skript parametry; jinak tedy ručně otevřít powershell a příkazy vkládat do něj; další možností vytvořit zástupce včetně uvedených parametrů):

.pricitani.ps1 [od] [do] [krok] (výchozí parametry v tomto pořadí, bez uvedení parametrů to použije 1, 10, 2)

.pricitani.ps1 1 12 3

+1

+4

+7

+10

.pricitani.ps1 -do 100 -krok 17 -od -5

+-5

+12

+29

+46

+63

+80

+97

Pro přesměrování do souboru použijeme klasicky rouru, tedy: .pricitani.ps1 89100 89798 3 > soubor.txt

Soubor.txt v aktuální složce pak obsahuje ten stejný výpis, který se vypisoval tu.

No a je to.

Ohodnoceno: 0x
 

 

 

Přihlásit se k odběru odpovědí z této otázky:

Neneseme odpovědnost za správnost informací a za škodu vzniklou jejich využitím. Jednotlivé odpovědi vyjadřují názory jejich autorů a nemusí se shodovat s názorem provozovatele poradny Poradte.cz

 
Copyright © 2004-2016 Poradna Poradte.cz. Všechna práva na poradně Poradte.cz vyhrazena.