» Poradna » Programy

Excel - změna směru funkce (z prava do leva)

Odpovědět  |  Zobrazit bez stromu  |  Upozornit redakci  |  nových odpovědí: 13/13
 |   |  Microsoft Windows 7 Firefox 10.0.6  |  [194.39.218.---]

Ahojte,mám v excelu následující kód (viz níže), funguje tak, že pokud je vlevo číslo větší než 1, přičte vždy 1 do doby, než narazí na číslo menší než 1, tzn. 1, 2, 1, 0 = 3, a pokud je vlevo první číslo menší než 1, tak odečítá do té doby, dokud nenarazí na číslo větší než 1, tzn. 0, 0, 0, 0, 1 = -4.Otázke je následující: jde tuto funkci předělat tak, aby počítala zprava do leva a né jak teď zleva do prava?Díky za odpověďOption ExplicitFunction IncrDecr(Blk As Range) As IntegerDim Cll As Range, Tmp As IntegerIncrDecr = 0For Each Cll In Blk.Cells'------------------If Blk(1).Value = 0 Then If Cll.Value = 0 Then IncrDecr = IncrDecr - 1 Else Exit FunctionEnd IfEnd IfIf Blk(1).Value > 0 Then If Cll.Value > 0 Then If Cll.Value = "-" Then Exit Function End If IncrDecr = IncrDecr + 1 Else Exit FunctionEnd IfEnd If'--------------------Next CllEnd Function

Odpovědi na otázku

 |   |  Microsoft Windows XP Firefox 15.0.1  |  [65.197.242.---]

Odpověď je následující: ANO

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Firefox 10.0.6  |  [194.39.218.---]

Děkuji za odpověď. Logicky tedy musí následovat druhá otázka: je mi schopný sem někdo hodit kód, který obrátí tuto funkci (tedy počítání zprava do leva)?Děkuji

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows XP Firefox 15.0.1  |  [65.197.242.---]

Logická druhá odpověď zní: ANO (mně se v tom hrabat nechce)

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Firefox 15.0.1  |  [188.112.120.---]

Tak drž hubu, příteli, když sa ti v tom nechce hrabat

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows XP Firefox 15.0.1  |  [65.197.242.---]

Pročpak? On se ptal, jestli NĚKDO JE SCHOPNÝ. A já jsem přesvědčen, že ANO, někdo je určitě schopný.Hlavně, že ty odpovídáš na dotazy tazatele.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 22.0.1229.79  |  [90.177.110.---]

Je vidět, že běžná komunikace mezi smrtelníky ti dělá potíže.Nepřímá otázka je formou zdvořilého projevu.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows XP IE 7.0  |  [88.100.85.---]

Jen zhruba:Pro "obrácení" postupu je nutno nahradit cyklus "For Each Cll In Blk.Cells ..... next Cll" cyklemDim i as integerFor i = Blk.Cells.Count To 1 Step -1....( Cll.Value nahradit výrazem Blk(i) )....Next ia upravit ostatní indexy a hodnoty pro postupu "zprava"

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Firefox 10.0.6  |  [194.39.218.---]

Díky za odpověď. Bohužel podle tvého návodu to nejsem schopný dát dohromady, jelikož se ve VB vůbec nevyznám....

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows XP Firefox 15.0.1  |  [65.197.242.---]

Takže to vypadá, že budeš muset najít nějakého programátora VB najít a asi mu i něco zaplatit.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 22.0.1229.79  |  [90.177.110.---]

Já bych se snažil najít řešení bez makra.Popiš podrobněji strukturu těch dat. Počet sloupců je v tabulce stejný?Předpokládám, že v buňkách jsou pouze celá čísla. Můžou se vyskytnout záporná?První myšlenka je sloučit buňky do jednoho textového řetězce a na něm provést analýzu pomocí textových funkcí.Ale je potřeba znát ten obor hodnot.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Firefox 10.0.6  |  [194.39.218.---]

Bohužel to není tak jednoduché, záporné hodnoty se nevyskytují, ale může se v buňkách vyskytnout znaménko "-". Počet sloupců je stejný, dejme tomu vždy 20. Struktura dat může vypadat následovně:- - - - 0 1 2 0 0 - 4 - - - 2 = 20 - 1 1 1 3 - 1 0 0 0 1 2 0 0 - = -2- 0 1 - - - - 2 4 2 1 0 1 2 4 3 5 = 5- - - - - - - - - - 0 0 - 0 - 0 = -4v podstatě by se mělo počítat pouze s číslicemi, znaménko "-" se přeskakuje (do konečného výpočtu nezasahuje.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 22.0.1229.79  |  [90.177.110.---]

Zadání je toto:- pokud je vlevo číslo větší než 0, přičte vždy 1 do doby, než narazí na číslo menší než 1- a pokud je vlevo první číslo menší než 1, tak odečítá do té doby, dokud nenarazí na číslo větší než 0Buňky nabývají hodnot "0", "-" a kladných celých čísel.Je potřeba postup pro vyhodnocení zprava.Udělal jsem příklad pro těch tvých 15 hodnot.1. Přetransformoval jsem sloupce A-O do sloupců Q-AE, tak že hodnoty "0" a "-" zůstanou zachovány a všechny ostatní budou převedeny na "1"Q2: =KDYŽ(NEBO(A2=0; A2="-");A2;1)R2: =KDYŽ(NEBO(B2=0; B2="-");B2;1)2. Do sloupce AG jsem sloučil do řetězce hodnoty sloupců Q-AE v opačném pořadíAG2: =CONCATENATE(AE1;AD1;AC1;AB1;AA1;Z1;Y1;X1;W1;V1;U1;T1;S1;R1;Q1)3. Do sloupce AH jsem převedl hodnoty ze sloupce AG očištěné o znaky "-". Takže ve sloupci AH jsou hodnoty typu: 1100110, 0011000111110, ap.AH2: =DOSADIT(AG2;"-";"")4. Nyní je potřeba spočítat ve sloupci AG pro každou buňku počet úvodních jedniček nebo v záporné hodnotě počet úvodních nulAG2: =KDYŽ(ČÁST(AH2;1;1)="1";KDYŽ(JE.CHYBA(NAJÍT("0";AH2;1));DÉLKA(AH2);NAJÍT("0";AH2;1)-1);KDYŽ(JE.CHYBA(NAJÍT("1";AH2;1));-DÉLKA(AH2);-(NAJÍT("1";AH2;1)-1)))Je to trochu nepřehledné ale funguje to ve shodě s tvými příklady.Funkce KDYŽ() hledá příští výskyt nuly, pokud je na začátku jednička. Anebo výskyt příští jedničky, pokud je na začátku nula.Funkce JE.CHYBA ošetřuje případy samých nul nebo samých jedniček a dosadí počet rovný délce řetězce.Počet nul je opatřen zápornou hodnotou.Pokud bys ve funkci CONCATENATE() ve sloupci AG neotáčel pořadí, tak to počítá zleva, jinak to počítá zprava.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Firefox 10.0.6  |  [194.39.218.---]

Tak to je super, funguje přesně jak má. Ani jsem netušil, že to půjde vyřeštit bez makra.Díky moc!

Souhlasím  |  Nesouhlasím  |  Odpovědět

Související témata: Exit, První číslo



Určitě si přečtěte


Tesla chce změnit nákladní dopravu. Její elektrický náklaďák má ohromující parametry

Tesla chce změnit nákladní dopravu. Její elektrický náklaďák má ohromující parametry

** Tesla představila elektrický kamion ** Má obdivuhodný výkon i dojezd ** Prodávat by se měl už za dva roky

17.  11.  2017 | Vojtěch Malý | 165

30 počítačových brzd, které vám zpomalí Windows

30 počítačových brzd, které vám zpomalí Windows

Na webu najdete hromadu rad, jak zrychlit počítač a Windows. My jsme na to šli opačně a naopak jsme hledali činnosti, které ho nejvíce zpomalují. Toto je třicítka těch základních.

12.  11.  2017 | Jakub Čížek | 91

Elektronika, která nepotřebuje kabel ani baterii. Živí se rádiovým šumem

Elektronika, která nepotřebuje kabel ani baterii. Živí se rádiovým šumem

** Každá elektrická krabička má konektor pro napájení nebo baterii ** Jenže pozor, jednou by to tak nemuselo být ** Drobná elektronika se může živit rádiovými vlnami

14.  11.  2017 | Jakub Čížek | 15

Nejlepší notebooky do 10 tisíc, které si teď můžete koupit

Nejlepší notebooky do 10 tisíc, které si teď můžete koupit

** I pod hranicí desíti tisíc korun existují dobře použitelné notebooky ** Mohou plnit roli pracovního stroje i zařízení pro zábavu ** Nejlevnější použitelný notebook koupíte za pět a půl tisíce

16.  11.  2017 | Stanislav Janů | 52

Do 20 let nebude nikdo vlastnit auta, říká zkušený šéf několika automobilek

Do 20 let nebude nikdo vlastnit auta, říká zkušený šéf několika automobilek

** Bývalý šéf a expert z několika velkých automobilek se vyjádřil k budoucnosti tohoto průmyslu ** Do 20 let „nikdo“ nebude vlastnit auta ** Veškerá doprava bude řešená pomocí velkých logistických platforem

15.  11.  2017 | Karel Javůrek | 74


Aktuální číslo časopisu Computer

Otestovali jsme 5 HDR 4K televizorů

Jak natáčet video zrcadlovkou

Vytvořte si chytrou domácnost

Radíme s koupí počítačového zdroje