Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  146 147 148 149 150 151 152 153 154   další » ... 289

Jáj :)

Ale okrem zámeny "řádku A:A" s "sloupcem A:A" mi tam do očí bije ešte to, že treba vkladať vzorce do A1, A2, A3, ... na základe riadku 2:2. Čo ale koliduje s vkladaním do A2, keďže je to 1. bunka 2. riadku, ktorý je referenčný pre počet vzorcov.

Alebo podľa druhého príspevku je vraj v sloupci A:A v bunke A1 vzorec X, v bunke B1 vzorec Y, ... Lenže problém je, že bunka B1 nieje v sloupci A:A.

No a do tretice mi neštimuje v B1 vzorec =COUNTIFS(wins!S:S;$C$1;wins!S:S;$B$1), ktorý odkazuje ako kritérium sám na seba, teda B1. A rovnaké to bude v bunke C1 keď bude zase prvé kritérium C1.

Teda ja predpokladám, že keď si dopletiete tie jablkohrušky, tak nám ukážete niečo v tom zmysle, že máte v riadku 2:2 (A2:Axxx) hodnoty, ktoré určujú počet vzorcov v riadku 1:1 (A1:Axxx). A tie vzorce do 1:1 (A1:Axxx) chcete vložiť, pričom ako kritérium bude odpovedajúca hodnota napr. z 2:2 (A2:Axxx). A pod. Proste niečo, čo nebude kolidovať navzájom. :)

Takže Dejwing, šup sem prílohu...

Máte tam už vzorce, a chcete ich nahradiť hodnotami ?
Označte oblasť, Ctrl+C, pklik, Možnosti prilepenia - Hodnoty. Na to nieje treba makro.

Nemáte tam vzorce, a chcete ich vložiť do stĺpca A:A toľko, koľko je v riadku 2:2 hodnôt, a následne previesť na hodnoty ? Na to sa dá makro urobiť, ale vložte prílohu ako to vyzerá, nech vieme ako sú dáta umiestnené, odsadené, typ dát, či je pod tabuľkou niečo iné na čo treba brať ohľad pri zisťovaní počtu riadkov, či sú tam medzery a pod ...

A toto by nešlo ?
Sub NajdiOznac()
Dim PocetU As Long, PocetSD As Long, V, RNG As Range

PocetSD = Sheets("Strategické díly").Cells(Rows.Count, 1).End(xlUp).Row
With Sheets("Urgence")
PocetU = .Cells(Rows.Count, 3).End(xlUp).Row

If PocetU = 1 Or PocetSD = 2 Then MsgBox "Není co řešit :)": Exit Sub
V = Evaluate("=IF(COUNTIF('Strategické díly'!A3:A" & PocetSD & ",Urgence!C2:C" & PocetU & ")>0,True)")

For PocetU = 1 To PocetU - 1
If V(PocetU, 1) Then
If RNG Is Nothing Then Set RNG = .Cells(PocetU + 1, 3) Else Set RNG = Union(RNG, .Cells(PocetU + 1, 3))
End If
Next PocetU
End With

If Not RNG Is Nothing Then RNG.Interior.Color = RGB(0, 255, 0)
End Sub

Sub NajdiReklamace()
Dim rngPrvni As Range, rngPosledni As Range, rngReklamace As Range
With Range("N:N")
Do
If rngPrvni Is Nothing Then
Set rngPrvni = .Find(What:="EBE", After:=.Cells(1), LookAt:=xlPart)
Set rngPosledni = rngPrvni
Else
Set rngPosledni = .Find(What:="EBE", After:=rngPosledni, LookAt:=xlPart)
If rngPosledni.Address = rngPrvni.Address Then Exit Do
End If
If rngPosledni Is Nothing Then Exit Do
If rngReklamace Is Nothing Then Set rngReklamace = rngPosledni.Offset(0, 5) Else Set rngReklamace = Union(rngReklamace, rngPosledni.Offset(0, 5))
Loop
End With
If Not rngReklamace Is Nothing Then rngReklamace = "REKLAMACE"
End Sub

Áno drobná chybka odo mňa pri $D$4 má byť $D4, samozrejme. Pridal som Vám tam vizuálne overenie, a ejhľa. Nielenže Vám nesedia tie hodnoty čo tam máte uvedené v rozsahoch voči meradlám, ale navyše tam máte medzery okolo "-", pričom v zoznamoch medzery niesú. To som upravil. Rovnako pozor na to, že som Vám, tak ako ste chcel, vypustil tie podtržítka.

Napadá ma takáto blbina, len sa mi nezdá, že by to muselo byť až takéto "zložité". Snáď dá niekto niečo kratšie.
=IF(ABS(F37)>H37;(ABS(F37)-H37)*IF(F37<0;-1;1);"-")
=KDYŽ(ABS(F37)>H37;(ABS(F37)-H37)*KDYŽ(F37<0;-1;1);"-")

Tak môže to byť kľudne trebárs aj takto ... ?

No a už sme skoro na rovnakej "vlne" v tom čo hovoríme. :)

Vo VBA :
-do Name ide vložiť dlhý vzorec iba pri vytváraní Name, alebo keď je Name už vytvorený, tak
a) "chmatom" cez bunku
b) vymazaním Name a opätovným vytvorením

-do bunky nejde vkladať dlhý vzorec ako FormulaArray, a treba použiť Name

-vzorce kratšie ako 255 znakov nieje problém vkladať do Name ani pri vytvorení ani cez RefersTo, ale ani ako maticové cez FormulaArray priamo do bunky

-maticový vzorec sa nikdy nezadáva s {}

-každý maticový vzorec v Name je automaticky maticový, bez akéhokoľvek zásahu ako {}, rovnako ako každý vzorec vložený do bunky cez FormulaArray

PS: dlhý > 255 znakov

Narýchlo jedno možné riešenie bez potreby otvárania súborov, pomocou vkladania vzorcov. Overenie existencie súboru, existencie listu data, počtu riadkov. Smerodajný pre určenie počtu riadkov je stĺpec A v listoch "data". Slušne rýchle, ale dalo by sa ešte o kúsok rýchlejšie, keď by sa nevkladali vzorce na 3x ako teraz, ale by sa pripravili do 1 veľkého poľa a dali naraz. Ale už sa mi nechce :).
Inak príliš som to netestoval...

Prípadne by som pre toto vážne zvážil PowerQuery.

Hm, no u mňa ide zapísať dlhý vzorec do Name iba takto:
a) pri vytváraní Name (keď neexistuje), použiť normálny vzorec A1
b) pri prepisovaní vzorca v existujúcom Name nejde použiť RefersTo = vzorec A1, ale zožerie to iba RefersToR1C1 = vzorec R1C1.

To je zaujímavé, lebo R1C1 je dlhší ako A1.

Ak teda mám len vzorec A1, tak ho pomocne vložím do bunky ako Formula, a odtiaľ ho načítam do do Name ako R1C1
Name().RefersToR1C1 = Bunka.FormulaR1C1.

Teda ide o to, či sa mi ten vzorec ľahšie skladá ako A1 alebo R1C1, potom záleží či budú s tým opletačky alebo nie pri vkladaní do Name.

Tak potom napr. takto:
Sub Makro1000c()
Dim Radku As Long, Radku2 As Long, RNG As Range, D()
With wsUrgence
Radku = .Cells(Rows.Count, 1).End(xlUp).Row
Radku2 = wsStrategickeDily.Cells(Rows.Count, 4).End(xlUp).Row
If Radku < 2 Or Radku2 < 3 Then MsgBox "Chybějí data.", vbExclamation, "Oznam": Exit Sub
D = Evaluate("=IF(COUNTIF('Strategické díly'!D3:D" & Radku2 & ",Urgence!A2:A" & Radku & ")>0,True)")
For Radku = 1 To UBound(D)
If D(Radku, 1) Then
If RNG Is Nothing Then Set RNG = .Cells(Radku + 1, 1) Else Set RNG = Union(RNG, .Cells(Radku + 1, 1))
End If
Next Radku
End With
If Not RNG Is Nothing Then RNG.Interior.Color = RGB(0, 204, 255)
End Sub

Sub Makro1000b()
Dim Cell As Range, D(), Radku As Long, HDN As String, RNG As Range
With wsUrgence
Radku = .Cells(Rows.Count, 1).End(xlUp).Row - 1
If Radku < 2 Then MsgBox "Chybějí data.", vbExclamation, "Oznam": Exit Sub
HDN = wsStrategickeDily.Cells(3, 4).Value2
ReDim D(1 To Radku, 1 To 1)
D = .Cells(2, 1).Resize(Radku).Value2
For Radku = 1 To Radku
If D(Radku, 1) = HDN Then
If RNG Is Nothing Then Set RNG = .Cells(Radku + 1, 1) Else Set RNG = Union(RNG, .Cells(Radku + 1, 1))
End If
Next Radku
End With
If Not RNG Is Nothing Then RNG.Interior.Color = RGB(0, 204, 255)
End Sub

Nechcete Vy náhodou testovať výskyt všetkých zo Strategické díly!D3:D13 ? Inak to môžete kľudne aj Podmieneným formátom.

PS: wsUrgence a wsStrategickeDily som si pomenoval CodeName listov.

Ak chcete dať do bunky C3 dlhý maticový vzorec, a môžete použiť pri tom DefName, tak takto to ide:
Sub pokus()
With ActiveSheet
.Range("C3").Formula = "=IF(A3="""","""",RIGHT(REPT(""0"",LEN(A3))&SUM(IFERROR(MID(A3,LARGE(IF(ISERROR(--MID(A3,LEN(A3)+1-ROW($A$1:INDEX($A:$A,LEN(A3))),1)),FALSE,LEN(A3)+1-ROW($A$1:INDEX($A:$A,LEN(A3)))),ROW($A$1:INDEX($A:$A,LEN(A3)))),1),0)*POWER(10,ROW($A$1:INDEX($A:$A,LEN(A3)))-1)),COUNT(--MID(A3,LEN(A3)+1-ROW($A$1:INDEX($A:$A,LEN(A3))),1))))"
.Names("MATICOVY_VZOREC").RefersToR1C1 = Range("C3").FormulaR1C1
.Range("C3").Formula = "=MATICOVY_VZOREC"
End With
End Sub

Áno vspomínam si, myslím že toto je ono. Metóda 1 má v SK 318 znakov. V CZ má až 439 ?
Tož já sa v tom niekedy pekne vyžívam 5
UDF by bola podstatne jednoduchšia a čitateľnejšia to je jasné. Tak ale možno existujú iné jednobunkové vzorce, jednoduchšie, netuším ...

Rôznych riešení môžu byť mraky, tu je ďalší príklad, ale opäť a zas (ako vždy), nedostatočný popis bez príkladu presného požadovaného použitia. Ak ide len o nájdenie objednávky, na to stačí aj filter, ak o súhrn objednávok pre určitého odberateľa, na to KT. Neviem na čo potrebuje dotyčný takéto niečo. Teda HOLIS87, ste na ťahu ...


Strana:  1 ... « předchozí  146 147 148 149 150 151 152 153 154   další » ... 289

Uživatelské menu

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

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

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

Aktivní diskuse

Názvy z řádků do sloupců Power Query

lubo • 19.7. 12:24

vyhledání obsahu buňky

vfort • 18.7. 11:22

Názvy z řádků do sloupců Power Query

Alfan • 18.7. 10:01

Tlac 2 roznych tabuliek

loksik.lubos • 17.7. 20:43

Týden v roce

Petr92 • 16.7. 15:34

Řazení podle času v kategoriích

veny • 16.7. 11:34

špatný výpočet ze zisku - příčina?

Anonym • 12.7. 22:56