Štruktúra XML je vždy rovnaká? Teda hlavný uzol "note", a pod ním vždy uzly s dátami "to", "from", "heading", "body", ... ? Teda bez ďalších vnorení poduzlov? Ak áno, tak by som to urobil rýchlym rozkladom textu, a nie importom.
Myslíte 3D vzorec? Teda ak zoberiem príklad od Jiřího, tak chcete zistiť, či sa A1 vo všetkých listoch rovná 5? Potom, keďže funkcia IF/KDYŽ nepodporuje priamo 3D odkazy, dal by sa použiť test vynásobenia čísel v A1 vo všetkých listoch a následné porovnanie s N-tou mocninou čísla 5. Prázdne A1 neberie do úvahy. Problém je, že daný súčin sa dá dosiahnuť aj inými číslami:
=IF(PRODUCT(List2:List5!A1)=5^COUNT(List2:List5!A1);1;0)
=KDYŽ(SOUČIN(List2:List5!A1)=5^POČET(List2:List5!A1);1;0)
alebo porovnať min a max v bunkách A1 v listoch. Musí byť vždy 5. Prázdne rovnako neberie do úvahy:
=IF(AND(MAX(List2:List5!A1)=5;MIN(List2:List5!A1)=5);1;0)
=KDYŽ(A(MAX(List2:List5!A1)=5;MIN(List2:List5!A1)=5);1;0)
V 3D dotaze určujete prvý a posledný názov listu v rozsahu listov.
Ak chcete čokoľvek iné, Váš popis nie je dostatočný, a je potreba popis rozšíriť a zároveň priložiť prílohu s príkladom toho čo máte, a čo má byť výsledkom.
A nejde o omyl?
- "pokusná data.xlsx" neobsahuje žiadne makro
- "note.xml" neobsahuje nič, čo by akokoľvek korešpondovalo s čímkoľvek v "pokusná data.xlsx"
=HLOOKUP(A4;List1!$A$2:$DG$3;2;FALSE)
=VVYHLEDAT(A4;List1!$A$2:$DG$3;2;NEPRAVDA)
Náhled a makro je v příloze.
Nie je možné priložiť taký súbor bez citlivých info ?
úplne z brucha, keďže nieje jasné ako majú podmienky fungovať ...
=A12+A14+I9+KDYŽ(I4=DENTÝDNE(3);A16;KDYŽ(I4=DENTÝDNE(5);A18;0))
Ten filter vypíše všetky jedinečné hodnoty, a tak som vzorcom zabezpečil, aby boli hodnoty v skrytom stĺpci B iba "Viditeľné" alebo "Neviditeľné". Po kliknutí sa reaplikuje. Vpravo hore je "Vymazať filter", a ten ukáže všetko.
Čo k tomu dodať ?...
Čo znamená "pod tlačítkom"?
Sub PodTlacitkom1()
With ActiveSheet.Buttons(Application.Caller).TopLeftCell
Select Case .Value
Case 1: .Value = 2
Case 2: MsgBox "Nazdar Fero, ako sa máš?", vbQuestion
Case Else:
End Select
End With
End Sub
Sub PodTlacitkom2()
With ActiveSheet.Buttons(Application.Caller).TopLeftCell.Offset(1, 0)
Select Case .Value
Case 1: .Value = 2
Case 2: MsgBox "Nazdar Fero, ako sa máš?", vbQuestion
Case Else:
End Select
End With
End Sub
Podľa úhľadného screenshotu (rovné čiary) usudzujem, že ide o PDF vytvárané ako export z nejakého SW. Teda nie o scan. V tom prípade, sa dá použiť presne také riešenie, ako ste to mal. Otvorí sa manuálne PDF, Ctrl+A, prepnúť do Excelu, kliknúť na čudlík. Makro vloží dáta do pomocného listu. Z tohto listu sa potom text spracuje makrom, ktoré musí byť špecializované na presnú formu, presné textové značky oddeľujúce dané údaje, presné kombinácie či postupnosti týchto značiek. Toto isté som už nedávno jednému pánovi robil. Nemôžem poskytnúť. Ak mi pošlete na mail PDF, možno, ale skutočne iba možno, sa na to pozriem. Nemám totiž ani čas, ani chuť, ani zdravie na veľké projekty...
To sú polia údajov. Je to rýchlejšie ako ísť bunku po bunke. Je to takto pochopiteľnejšie?
Ja to Vaše rozloženie nechápem.
1. Vždy sa to musí vpratať do 34 riadkov vrátane?
2. Medzera sa pridáva aj pred prvú položku X?
3. Súvisí s 2. - vybrané položky sa majú akoby roztiahnuť na celú výšku 34 riadkov? Teda na prvom bude položka a na poslednom bude položka?
Ukážte ako má vyzerať manuálne urobený výsledok konkrétne tohto rozloženia, a potom ešte jeden, kde budú vybrané napr. iba 2 položky. Aby som porozumel, ako presne chcete aplikovať tie medzery...
Inak toto sa dá urobiť aj vzorcom, na to makro nie je potrebné.
Pr. načítania oblasti buniek do poľa:
Sub Kontrola_hodnoty()
Dim Pole(), Riadkov As Long, i As Long, MSG As String
With Worksheets("Hárok1")
Riadkov = .Cells(Rows.Count, "A").End(xlUp).Row - 1
If Riadkov = 0 Then MsgBox "Chábajú data.", vbExclamation: Exit Sub
Pole = .Range("A2:F2").Resize(Riadkov).Value
End With
For i = 1 To Riadkov
If Pole(i, 6) < 90 Then
MSG = MSG & vbNewLine & Join(Array(Pole(i, 1), Pole(i, 2), Pole(i, 3), Pole(i, 4), Pole(i, 5), Pole(i, 6)), " / ")
End If
Next i
MsgBox IIf(MSG = "", "všetko OK", "Tieto hodnoty sú pod limitom <=90" & MSG), IIf(MSG = "", vbInformation, vbCritical)
End Sub
Sub Losuj()
Dim M(), Radku As Long, Zac As Double, ML As String
With ThisWorkbook.Worksheets("List1")
Radku = .Cells(Rows.Count, 1).End(xlUp).Row
ReDim M(1 To Radku, 1 To 1)
Select Case Radku
Case 1: ML = .Cells(1, 1).Value2
Case Else: M = .Cells(1, 1).Resize(Radku).Value2
Zac = Now() + TimeValue("00:00:05")
While Now() < Zac
ML = M(Int(Rnd() * Radku) + 1, 1)
.Cells(3, 5).Value2 = ML
DoEvents
Wend
End Select
.Cells(3, 5).Value2 = ML
End With
End Sub
=SUMPRODUCT($A$2:$A$5;--(COUNTIF(OFFSET($B$2:$D$2;ROW($A$2:$A$5)-2;);"Roman")*($E$2:$E$5="modrá")*($F$2:$F$5="obdelník")>0))
=SOUČIN.SKALÁRNÍ($A$2:$A$5;--(COUNTIF(POSUN($B$2:$D$2;ŘÁDEK($A$2:$A$5)-2;);"Roman")*($E$2:$E$5="modrá")*($F$2:$F$5="obdelník")>0))
V E4 nie je "modrá" ale "modrá " !
PS: V tom mojom prvom CZ ekvivalente som zabudol preložiť ROW na ŘÁDEK, a div sa svete, nikto sa nesťažoval
Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.
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.