< návrat zpět

MS Excel


Téma: pomoc s vyhľadávacím makrom rss

Zaslal/a 20.4.2015 13:58

Dobrý deň

Vytváram dynamickú tabuľku v Exceli spojenú s rozsiahlou databázou a narazil som na jeden problém. Týka sa to mojej Achilovej päty - čo sú makrá - a preto Vás žiadam o pomoc

no a čo vlastne potrebujem? výsledok je jednoduchý, a to vloženie čísla riadka údajov do viacerých buniek pod sebov.
konkrétne kroky sú:
Stĺpec A - číslo riadka hodnôt
B - číslo v percentách so šiestimi desatinými číslami
- z tohto stĺpca potrebujem nájsť 10 presných alebo najbližších hodnôt, priradiť k nim číslo riadka hodnôt (A) a dosadiť hodnotu A do buniek napr. F1:F10
v Bunke C1 sa nachádza hľadaná hodnota - percento so šiestimi desatinými miestami

podmienky sú:
makro musí najprv hľadať presné hodnoty až potom najbližšie možné (nezáleži na tom, či sú hodnoty väčšie alebo menšie ako hľadaná hodnota) - musí to byť "len" najbližšia možná hodnota
no a samozrejme, čísla riadkov v poliach F1:F10 sa nesmú opakovať

Čo si myslíte? je možné takéto makro vytvoriť?

za odpoveď a Váš čas veľmi pekne ďakujem

Zaslat odpověď >

icon #024542
avatar
Na toto makro naozaj potrebné nie je, pozri do prílohy.
Příloha: zip24542_pom.zip (8kB, staženo 27x)
citovat
#024544
avatar

AL napsal/a:

Na toto makro naozaj potrebné nie je, pozri do prílohy.Příloha: 24542_pom.zip


no toto je presne to, čo potrebujem
mám s týnm ale problém, samozrejme som si to musel trošku prispôsobiť na moje pomery a výsledok vyzerá takto:
=INDEX(A1:A49916;MATCH(SMALL(ABS(J3:J49916-T1);ROW());ABS(J3:J49916-T1);0))
v bunke mi ale zobrazí "HODNOTA" - niekde je chybacitovat
#024545
avatar
Přeji hezký večer.

Myslím si, že by stačilo, kdyby jste si pořádně zkontroloval svůj kod s kodem od Ala. 1citovat
#024547
elninoslov
HODNOTA to vráti ak nezadáš vzorec ako maticový. Takže vo vzorci stlač nie ENTER ale Crtl+Shift+ENTER. Zásadný rozdiel.citovat
#024553
avatar
oh, no jasné, moja chyba

no, vzorec síce funguje, no presnosť nieje dostatočne vysoká, tzn. nenájde najprv rovnaké hodnoty a potom najbližšie
taktiež rozmedzie je príliš veľkécitovat
#024559
elninoslov
Nepoužívaš dolárovú notáciu ako v navrhnutom riešení. A máš nerovnaký počet riadkov v A a J, pretože v J začínaš na 3 a v A na 1, pričom končíš na rovnakom riadku. Vzorec ale neodstráni duplu.
Podľa mňa to funguje ako má, až na tie duply.citovat
icon #024562
avatar
.. k tomu, čo uvádza elninoslov, doplním akurát, že duplicity sa dajú ošetriť pomerne jednoduchou úpravou vzorca, pokiaľ budem mať chvíľu, tak sa na to pozriem, ale mal by si sa, Juraj, trochu posnažiť najprv sám. Samozrejme, niekto z kolegov to určite upraviť dokáže, aby to duplicity poriešilo.
Návod: pridať malú hodnotu k jednotlivým hodnotám tak, aby nevznikali duplicity, t.j. pridať niečo ako:
číslo riadku / deliteľ
kedy deliteľ musí byť dostatočne veľké číslo, v závislosti na počet hodnôt a ich rozsah. Funkciu MATCH potom aplikovať na takto modifikované hodnoty.
Sorry za chaotický popis, domnievam sa, že zopár ľudí aspoň tuší, o čom hovorím, na podrobnejšie vysvetlenie nemám zrovna moc času..citovat
icon #024563
avatar
tak nakoniec úprava môjho pôvodného vzorca trvala asi 30 sekúnd.
Pôvodný vzorec v bunke F1:=INDEX($A$2:$A$51;MATCH(SMALL(ABS($B$2:$B$51-$C$1);ROW());ABS($B$2:$B$51-$C$1);0))
Nahraď vzorcom:=INDEX($A$2:$A$51;MATCH(SMALL(ABS($B$2:$B$51-$C$1)+ROW($B$2:$B$51)/100000000000;ROW());ABS($B$2:$B$51-$C$1)+ROW($B$2:$B$51)/100000000000;0))modifikovaný vzorec už nájde i rovnaké hodnoty. Samozrejme, treba opäť vložiť maticovo a deliteľ 100000000000 vhodne modifikovať v závislosti od rádu počtu riadkov. Pri počte riadkov do 100 stačí číslo 100000000000, pri počte riadkov do 1000 musí byť deliteľ o rád vyšší, t.j. 100000000000 atd.citovat
#024565
elninoslov
Tu to máš s upraveným vzorcom od AL, aj s jeho adresovaním, aj s Tvojim upraveným adresovaním, aj s 49916 riadkami (preto na ext. server)
http://leteckaposta.cz/460507022citovat
#024584
avatar
super, toto funguje excelentne
ďakujem za rady
prípadné otázky budem smerovať sem

ešte raz vďakacitovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje