- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- DIGI Mobil
- Digitális detox a Nokiától
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Fotók, videók mobillal
- Samsung Univerzum: Az S23-at is megbabonázta a Galaxy AI
- iPhone topik
- Azonnali mobilos kérdések órája
- Vodafone mobilszolgáltatások
- Yettel topik
Hirdetés
-
Augusztustól nagyot változik a Shein élete
it Onnantól kezdve lesz a platformra érvényes az EU-ban a DSA, így számos kötelezettséget vesz a vállára a Shein.
-
Egészen nagy teljesítményspektrumon fedné le a mobil piacot az AMD
ph A vállalat kétféle Strix Point dizájt tervez idénre, ezek közül a nagyobbik a dedikált GPU-k jó részét is kiválthatja.
-
Ilyen lesz az Astor: Blade of the Monolith
gp A C2 Game Studio nemrég átnevezett játéka a tervek szerint jövő hónap végén debütál.
-
Mobilarena
A Microsoft Excel topic célja segítséget kérni és nyújtani Excellel kapcsolatos problémákra.
Kérdés felvetése előtt olvasd el, ha még nem tetted.
Új hozzászólás Aktív témák
-
Delila_1
Topikgazda
válasz RedHarlow #27625 üzenetére
Kicsit több adatra van szükség.
7 ügyintéződ van? Melyik oszlopban van a nevük?
A lapok neve megegyezik az ügyintézőjével (kivéve az első lapot, ahol az összes adat van ömlesztve)?
Ha nincs ügyintéző, akkor az első ügyintéző lapjára kerüljenek az adatok a B oszlop tartalmától függően?
Ha nem X, D, vagy K a B oszlop tartalma, hova kerüljön a sor?Egyébként ha 1× kell szétosztani az adatokat, néhány autoszűréssel, a szűrt adatok másolásával egyszerűen megoldható.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
válasz RedHarlow #27628 üzenetére
Így már kicsit több az információ, de még nem derült ki, mi a feladat.
Most próbáld meg úgy leírni, ahogy az Excel szereti.Példa: ha az A oszlopban X1, X2, X3, vagy X4 van az aktuális sorban, akkor a sort másolni kell a .... lapra.
Ha az A értéke X5, vagy X6, akkor ..., ha az A értéke X7, akkor ...Ha az A üres, és a B tartalma Y1, Y2, vagy Y3, akkor...
Ha az A üres, és a B tartalma Y4, Y5, vagy Y6, akkor...Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
válasz RedHarlow #27630 üzenetére
Így már rendben.
A füzetben az első lap az, amin ömlesztve vannak az adatok. Ezt követi a két lap, ahova másolni kell.
A makróban két helyen szerepel a
Sheets(Array("Munka2", "Munka3")).Select
sor, ezekben írd át a Munka2 és Munka3 lapneveket a füzetedben lévő 2. és 3. lap nevére.Szerk.: persze az X1–X4 és Y1–Y6 adatokat is írd át!
Sub SzetCincal()
Dim nev As String, sor As Long, usor As Long, usorIde As Long
Dim WS As Worksheet, WSIde As Worksheet, lap As Integer
Set WS = Sheets(1)
'Előző adatok törlése
Sheets(Array("Munka2", "Munka3")).Select
Cells.Select
Selection.ClearContents
'Címsor a 2 lapra
WS.Rows("1:1").Copy
Sheets(Array("Munka2", "Munka3")).Select
Range("A1").PasteSpecial xlPasteValues
'Szortírozás
WS.Select
usor = Range("A" & Rows.Count).End(xlUp).Row
For sor = 2 To usor
nev = Cells(sor, 6)
Select Case nev
Case ""
If Cells(sor, 5) = "Y1" Or Cells(sor, 5) = "Y2" Or _
Cells(sor, 5) = "Y3" Then lap = 2
If Cells(sor, 5) = "Y4" Or Cells(sor, 5) = "Y5" Or _
Cells(sor, 5) = "Y6" Then lap = 3
Case "X1", "X2"
lap = 2
Case "X3", "X4"
lap = 3
Case Else
GoTo Tovabb
End Select
Set WSIde = Sheets(lap)
usorIde = WSIde.Range("A" & Rows.Count).End(xlUp).Row + 1
Rows(sor).Copy WSIde.Range("A" & usorIde)
Tovabb:
Next
End Sub[ Szerkesztve ]
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
válasz RedHarlow #27635 üzenetére
Szia!
Mikor leáll hibával, a makróban mutass rá (ne jelöld ki) a lap változóra, akkor kiírja, mennyi az értéke. Ha ez nagyobb, mint ahány lap van a füzetedben, akkor feljebb rosszul adtad meg az értékét a Select Case részben.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
-
Delila_1
Topikgazda
válasz RedHarlow #27748 üzenetére
A makró az U oszlopba írja ki a nevet és a jogosultságot.
Sub Jogosultsag()
Dim sor As Long, usor As Long, oszlop As Integer
usor = Range("A" & Rows.Count).End(xlUp).Row
For sor = 2 To usor
Cells(sor, "U") = "[" & Cells(sor, "A") & "] "
For oszlop = 7 To 20
If Cells(sor, oszlop) = "true" Then
Cells(sor, "U") = Cells(sor, "U") & "[" & Cells(1, oszlop) & "] "
End If
Next
Next
End SubProgramozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
m.zmrzlina
senior tag
válasz RedHarlow #28686 üzenetére
Feltételezem, nincsen olyan emailcím az 1000 között aminek azonos az első öt karaktere. Ez esetben csinálj egy segédoszopot, modjuk az E oszlopba a következő képlettel:
E1 képlete:=BAL(A1;5)
Ezt másold le az email címlista aljáig. Azután akár el is rejtheted az oszlopot.C1 képlete:
=HAHIBA((INDEX(A:A;HOL.VAN(B1;E:E;0)));"")Ezt másold le a C20-ig. /vagy addig amennyi rövidítésed van/
Ha mégis van olyan email cím aminek azonos az első öt karaktere akkor az első előfordulást fogja eredményként adni.
[ Szerkesztve ]
-
sztanozs
veterán
válasz RedHarlow #30733 üzenetére
Sub CreateAfile
Dim fs, fileObj
Set fs = CreateObject("Scripting.FileSystemObject")
Dim v, ix
v = Range("A1:A1234").Value2
For ix = 1 to UBound(v,1)
Set fileObj = fs.CreateTextFile("c:\" & Trim(v(ix,1)) & ".doc", True)
fileObj.Close
Set fileObj = Nothing
Next
Set fs = Nothing
End SubCsak fejből, nem próbáltam ki élesben. A1:A1234 tetszés szerint beállítandó.
[ Szerkesztve ]
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
ny.janos
tag
válasz RedHarlow #30722 üzenetére
Ezt nem excellel akarnám megoldani kerülő úton, hanem Total Commenderrel (TC) a következők szerint.
Excelben szűrj egy tetszőleges mappára, majd a szűrt tartománynak a fájlneveit másold be egy jegyzettömbbe, s mentsd el tetszőleges néven. Ezt követően TC-ben abban a könyvtárban, ahol a fájljaid vannak, válaszd a kijelölés menü -> Kijelölés beolvasása fájlból parancsot. Tallózd be az imént elmentett jegyzettömböt, s meg is van a kijelölésed, ezzel a fájlokat tetszőleges helyre helyezheted / másolhatod át. Áthelyezést / másolást követően TC-vel könnyedén átnevezheted a fájlokat (Ctrl + M) ha szükséges. (Az átnevezést követően a Kijelölés -> A kijelölt nevek másolása a vágólapra funkcióval a fájlneveket akár vissza is másolhatod excelbe, ha szükséged van ott is az új fájlnevekre. Figyelj arra ez esetben, hogy a fájlnevek már az első lépésnél is ABC rendben legyenek, mert másként összekeverednek a fájlneveid!)[ Szerkesztve ]
-
Lasersailing
senior tag
válasz RedHarlow #32262 üzenetére
Szia,
Ha jól értettem a feladatot, akkor az alábbi:
Sub redharlow()
Dim sor As Integer
Dim oszlop As Integer
Dim ujsor As Integer
Dim sn As String
'program
sor = 1
sn = ActiveSheet.Name
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Name = "eredmeny"
ujsor = 1
'fejlécet
Sheets("eredmeny").Cells(1, 1) = "Név"
Sheets("eredmeny").Cells(1, 2) = "C oszlop"
Sheets("eredmeny").Cells(1, 3) = "D oszlop"
Sheets("eredmeny").Cells(1, 4) = "E oszlop"
[B]Sheets("eredmeny").Cells(1, 5) = "Dátum"[/B]
Sheets("eredmeny").Cells(1, 6) = "Ft"
Do
sor = sor + 1
For oszlop = 7 To 66
If Not (IsEmpty(Sheets(sn).Cells(sor, oszlop))) Then
ujsor = ujsor + 1
Sheets("eredmeny").Cells(ujsor, 1) = Sheets(sn).Cells(sor, 2)
Sheets("eredmeny").Cells(ujsor, 2) = Sheets(sn).Cells(sor, 3)
Sheets("eredmeny").Cells(ujsor, 3) = Sheets(sn).Cells(sor, 4)
Sheets("eredmeny").Cells(ujsor, 4) = Sheets(sn).Cells(sor, 5)
[B] Sheets("eredmeny").Cells(ujsor, 5) = Sheets(sn).Cells(1, oszlop)[/B]
Sheets("eredmeny").Cells(ujsor, 6) = Sheets(sn).Cells(sor, oszlop)
End If
Next oszlop
Loop Until IsEmpty(Sheets(sn).Cells(sor, 1))
End Sub(kérlek jelezz vissza, hogy jól értettem-e és ha van kérdésed még)
(Bocsánat találtam közben egy hibát, azt vastagon szedtem, hogy ki tud javítani)
üdv.
[ Szerkesztve ]
-
Fferi50
őstag
válasz RedHarlow #32466 üzenetére
Szia!
A cella tartalmához ugyanúgy hozzáfűzheted a táblázat kódot is. Ha 3 sorod van egy cellában, akkor elejére <tr> végére </tr>.
Ha egy-egy "táblázat sor" van benne, akkor minden "első" (hárommal osztva maradék 1) elejére teszed a <tr> és minden harmadik (hárommal osztva 0) végére teszed a </tr>.Pl az F oszlopban, ha az adataid az első sorban kezdődnek, a képlet:
=ha(maradék(sor();3)=1;"<tr>";"") & E1 & Ha(maradék(sor();3)=0;"</tr>";"")Ha nem az első sorban kezdődnek a tételek, akkor a maradék kalkulációt kell hozzáigazítanod.
Üdv.
-
Delila_1
Topikgazda
válasz RedHarlow #37999 üzenetére
Feltöltöttem egy fájlt.
A makró elején az utvonal változónak a saját útvonalad add meg, ügyelve arra, hogy \ jellel a végén szerepeljen.
Azokban a sorokban, ahol az AutoFilter szerepel, a $P helyére a saját utolsó oszlopod betűjelét írd a P helyére.Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
lenkei83
tag
válasz RedHarlow #38447 üzenetére
Szia!
Kijelölsz egy cellát a kimutatásban, jobb gomb és frissítés. Magától nem frissül (de makróval meg lehet oldani), azt viszont be lehet állítani, hogy a fájl megnyitásakor frissüljön: jobb gomb/kimutatás beállításai/adatok fül/Adatfrissítés fájl megnyitásakor pipa.
üdv
P. -
Mutt
aktív tag
válasz RedHarlow #38447 üzenetére
Szia,
Ahogy írják a kimutatás nem frissül magától.
A kézi vagy makrós frissítésmellett tudom még javasolni a fájl megnyitásakor történő automatikus frissítést.
Jobb klikk a kimutatáson majd Kimutatás beállításai -> Adatok fül -> Adatfrissítés a fájl megnyitásakor legyen bepipálva.
üdv
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
-
Fferi50
őstag
válasz RedHarlow #38498 üzenetére
Szia!
Például:
=Darabhatöbb(A:A;A2;E:E;"Kitöltve")/Darabteli(A:A;A2)*100 (vagy %-os cellaformázás)
Szerintem érdemes lenne a nevek oszlopot egy külön oszlopba betenni, ismétlődéseket kilőni és ahhoz bevinni a képletet. Ez lehet akár külön munkalapon is. Természetesen akkor a függvényekben a munkalapra hivatkozást is be kell tenni.
Üdv.
[ Szerkesztve ]
-
ny.janos
tag
válasz RedHarlow #38501 üzenetére
A kimutatás ez esetben szerintem mindenképpen egyszerűbb a többi lehetséges megoldásnál.
A kimutatás létrehozásakor a nevet (A oszlop) húzd a sorok közé, a kitöltés állapotát (E oszlop) pedig mind az oszlopokhoz, mind az értékekhez. Az értékeknél az értékmező beállításoknál az alábbit válaszd:
Értékösszegzési szempont fül: darab
Az értékek megjelenítése fül: sorösszeg százaléka.Ezzel kész is, amit szerettél volna.
Ha bővül a táblázatot, csak a kimutatás adatforrását kell módosítanod.
[ Szerkesztve ]
-
Pakliman
tag
válasz RedHarlow #40494 üzenetére
Szia!
Egy kezdetleges lehetőség:
'Az "EREDETI" munkalapra vonatkozik...
Sub fut()
Dim sor_u As Long: sor_u = 13 'Ezt később dinamikusan kell meghatározni, most csak a példa miatt fix.
Dim sor As Long
For sor = 1 To sor_u
'Feltételezem, hogy az A oszlopban a keresendő érték MINDIG aláhúzásjelek között van!!
'Az "F" (6.) oszlopban a "sor" sorban lévő értéket keressük az "A" (1.) oszlopban
If Application.CountIf(Columns(1), "*_" & Cells(sor, 6) & "_*") Then
'Ha találtunk ilyet, akkor a "C" (3.) oszlop "sor" sorába teszünk egy "X"et
Cells(sor, 3) = "X"
End If
Next sor
End Sub -
Pakliman
tag
válasz RedHarlow #40501 üzenetére
Igazad van.
Ez kell:Cells(Application.Match("??????_" & Cells(sor, 6) & "_*", Columns(1), 0), 1).Interior.Color = vbGreen
Bár ez csak az első találatot színezi át.
Ha több találat is lehet, akkor egy For .. Next ciklussal kell végignézni az "A" oszlopot.
Vagy feltételes formázás...[ Szerkesztve ]
-
Pakliman
tag
válasz RedHarlow #40505 üzenetére
A legegyszerűbb a feltételes formázás.
Az "A" oszlopra fixen is megcsinálhatod, de ha van rá esély, hogy bárki is hozzányúlhat és elcseszheti, akkor inkább kóddal kell megoldani.
Ezt tedd be a makróba.With Columns(1) 'Az A oszlopra vonatkozóan
.FormatConditions.Delete 'Töröljük az esetlegesen már meglévő formázást
.FormatConditions.Add Type:=xlExpression, Formula1:="=INDIREKT(CÍM(SOR();3))=""X""" 'Létrehozzuk a szükségeset
.FormatConditions(1).Interior.Color = vbGreen 'Beállítjuk hozzá a színt
End WithVagy a
For sor = 1 To sor_u
elé,
vagy aNext sor
után.[ Szerkesztve ]
-
Pakliman
tag
válasz RedHarlow #40558 üzenetére
Szia!
A rövid válasz: igen.
A hosszabb: az Excel meg tudja nyitni táblázatként is
(pl.:Workbooks.OpenXML Filename:="C:\Dokumentumok\adatok.xml", LoadOption:=xlXmlLoadImportToList
), ekkor már használható a "DARABTELI" függvény megfelelő változata.
Természetesen egyszerű szövegként is meg lehet nyitni, majd soronként beolvasva a szövegben lehet keresni és számolni a találatokat.[ Szerkesztve ]
-
Fferi50
őstag
válasz RedHarlow #43443 üzenetére
Szia!
Ha úgy másolod, hogy belelépsz a cellába, kijelölöd a képletet teljes egészében, másolod ctrl+c -vel , majd az új fájlban belelépsz abba a cellába, ahol a képlet kell, itt a szerkesztőlécen állva beillesztés, akkor csak a képlet szövege fog belekerülni. Enter után működik.
A másolt cellából pedig kiléphetsz ESC-vel.
Ha a keresendő értéket (alma) nem direkt szöveggel írod be, hanem egy oszlopban van, akkor másolhatod az első cellába beírt képletet.
DE:
Szerintem jobb megoldás lenne, ha a megrendelés összesítő egy külön munkafüzetben lenne. Akkor a megnyitás után az Adatok - Kapcsolatok vagy hivatkozások menüpontban meg tudnád változtatni a forrás munkafüzetet.Üdv.
[ Szerkesztve ]
-
Fferi50
őstag
válasz RedHarlow #43801 üzenetére
Szia!
Létrehoztam három nevet (Képletek - Névkezelő, új név):
AdagA=INDEX(Munka1!$A$1:$V$6;HOL.VAN(Munka1!$A10;Munka1!$A$1:$A$6;0);HOL.VAN(Munka1!B$9;Munka1!$A$1:$V$1;0))
AdagB=INDEX(Munka1!$A$1:$V$6;HOL.VAN(Munka1!$A10;Munka1!$A$1:$A$6;0);HOL.VAN(Munka1!B$9;Munka1!$A$1:$V$1;0)+1)
AdagC=INDEX(Munka1!$A$1:$V$6;HOL.VAN(Munka1!$A10;Munka1!$A$1:$A$6;0);HOL.VAN(Munka1!B$9;Munka1!$A$1:$V$1;0)+2)
Ezek megkeresik a táblázat 3 oszlopában a naphoz tartozó adagokat.
Az INDEX függvény első paramétere legyen a teljes rendelős táblázatod. Az első HOL.VAN függvény 2. paramétere a rendelős táblázat első oszlopa (a nevek), a második HOL.VAN függvény 2. paramétere a rendelős táblázat első sora (a napok).
A HOL.VAN függvények első paramétere az eredménytábla első oszlopa, illetve az eredménytábla következő oszlopai.
Kérlek, figyelj a $ jelekre, mert ez határozza meg a cellákat.
Ezek után az eredménytábla első cellájának (B10) képlete:=HA(AdagA>0;AdagA & "A";"") & HA(AdagB>0;KARAKTER(10) & AdagB & "B";"") & HA(AdagC>0;KARAKTER(10) & AdagC & "C";"")
Ez a képlet jobbra és lefelé is húzható!
Az eredménytábla celláinak formázásában állítsd be a sortöréssel több sorba opciót a képletek lehúzása után.
Mutatom az eredményt:Remélem sikerül.
Üdv. -
Mutt
aktív tag
válasz RedHarlow #43801 üzenetére
Szia,
Ha tömbfüggvény is játszik, akkor SZORZATÖSSZEG is tud segíteni.
O3-ban a képlet:
=HAHIBA((SZORZATÖSSZEG(($B$2:$M$2=O$2)*($B3:$M3>0)*($B3:$M3))/SZORZATÖSSZEG(($B$2:$M$2=O$2)*($B3:$M3>0))&O$2);0)
B-től M-ig terjedő oszlopokat nézi csak, ezt majd bővítened kell.
A végét pedig egy Excel 2016-ban lévő függvény, a SZÖVEGÖSSZEFŰZÉS adja meg.
=SZÖVEGÖSSZEFŰZÉS (KARAKTER(10);IGAZ;HA(O3:Q3>0;O3:Q3;""))
Ezt Ctrl+Shift+Enter-el kell majd bevinni.
üdv
[ Szerkesztve ]
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
-
Fferi50
őstag
válasz RedHarlow #44155 üzenetére
Szia!
Ha csak ennyi a feladat, akkor a képlet:=INDEX($B$1:$B$4;OSZLOP()-1)
A képletet addig húzod jobbra, amíg hibát nem jelez.
De gondolom más is van itt a pakliban. Ha például különböző nevek különböző egymás után i értékkel vannak jelen és azokat kell így átrendezni, akkor a képlet pl. lehet:=HAHIBA(INDEX($B$1:$B$10;HA(DARABTELI($A$1:$A$10;$A12)>=OSZLOP()-1;OSZLOP()-1;0));"NINCS TÖBB")
Ez a képlet is húzható jobbra, ha már nem talál több értéket, akkor NINCS TÖBB jelenik meg.
Mindkét képletnél feltétel, hogy a nevek az A, az értékek a B oszlopban legyenek.
A második esetben feltétel, hogy a neveket előre be kell írni az új táblázati részbe.
Üdv. -
Mutt
aktív tag
válasz RedHarlow #44155 üzenetére
Szia,
Megoldások:
Excel 2010-től indulva:
1. B12-es cella képlete:=INDEX($B:$B;ÖSSZESÍT(15;6;SOR($B$2:$B$5)/($A$2:$A$5=$A$12);OSZLOPOK($B:B)))
2. Power Query
Excel 365-el a B12 képlete:
=TRANSZPONÁLÁS(SZŰRŐ(B1:B4;A1:A4=A12))
Régebbi változatokban: Kimutatás
üdv
[ Szerkesztve ]
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
-
Fferi50
őstag
válasz RedHarlow #44175 üzenetére
Szia!
Van benne pár apróság.
Az eredeti képlet:=HAHIBA(INDEX($B$1:$B$10;HA(DARABTELI($A$1:$A$10;$A12)>=OSZLOP()-1;OSZLOP()-1;0));"NINCS TÖBB")
abból indult ki, hogy a nevek az A oszlopban, a hozzá tartozó értékek a B oszlopban vannak. Továbbá (bár ez sajnos nem derült ki egyértelműen), hogy az "új" táblázati rész is az A-B oszlopokban van, csak lejjebb. Tehát a képlet az eredeti mintád szerint a B12 cellába került. Az A oszlopban pedig az egyedi neveket kellett felsorolni.
A mostani képletedben a következőket látom:
A nevek a B oszlopban vannak, a hozzá tartozó értékek pedig az O oszlopban. Nem látom, hogy az ismétlés nélküli nevek hol vannak elhelyezve - mert a $B17 -ben biztosan ismétlődő név van - B oszlop lévén.
Tehát először is kell egy új oszlop az ismétlődés nélküli nevek számára.
Amit nem látok: melyik cellában van a képlet?
A paramétereket pedig az aktuális helyzethez kell igazítani:
Az OSZLOP() függvény arra szolgál a képletben, hogy a vízszintes elhúzást "függőlegessé" alakítsa át. Indítani pedig abból az oszlopból kell az értékét, ahol az áthelyezésre váró értékek vannak - mindig az első előfordulásnál kezdődjön.
A minta képletemben ez azért OSZLOP()-1, mert az adatok a B oszlopban (2. oszlop) kezdődnek, de nekünk az első előfordulás kell először, ezért kell a -1.
Ezért nem mindegy, melyik oszlopban kezded a képletet! A -1 helyett a kezdőoszlop száma -1 kerüljön a képletbe.
Pl. ha a Q oszlopban kezded a képletet, akkor 17-1= 16, azaz OSZLOP()-16 az induló képlet (mivel ennek az eredménye az 1, ha elhúzod, növekszik minden oszlopban eggyel az értéke, így mindig egy sorral lejjebb levő érték kerül az INDEX függvény alapján a cellába.)
A képletet azért lehet jobbra húzni, mert az OSZLOP() függvény képezi a változó részt.
Nagyjából így nézne ki, ha mondjuk az ismétlődés nélküli nevek a P oszlopban vannak, a képlet pedig a Q oszlopban kezdődik a Q2 cellában:=HAHIBA(INDEX($O$1:$O$11680;HA(DARABTELI($B$1:$B$11680;$P2)>=OSZLOP()-16;OSZLOP()-16;0));"NINCS TÖBB")
Remélem, így sikerülni fog.
Üdv. -
Fferi50
őstag
válasz RedHarlow #44243 üzenetére
Szia!
Rendben. Néhány dolgot én is úgy feltételeztem, hogy nem láttam a mintád valódi helyzetét.
Ennek a képletnek már mennie kell szerintem:=HAHIBA(INDEX($O$1:$O$11680;HOL.VAN($T2;$B$1:$B$11680;0)+HA(DARABTELI($B$1:$B$11680;$T2)>OSZLOP()-21;OSZLOP()-21;-SOROK($O$1:$O$11682)));"NINCS TÖBB")
Egy kis magyarázat:
A HOL.VAN függvénnyel megkeressük az adott érték első előfordulását (ez sajnos lemaradt az előző képletből), ehhez adjuk a keresés sorszámát. Az első hozzáadás 0 lesz, hiszen a megtalált sorban lesz az első érték.
A -SOROK rész pedig azt garantálja, hogy amint megvolt a szükséges darabszám, hibás legyen az INDEX értéke.
És persze az is bejátszott, hogy fejléc volt az oszlopokban. A képletet az U2 cellába kell írnod és utána húzható le és jobbra is.
Remélem, így már jó lesz.Üdv.
-
Mutt
aktív tag
válasz RedHarlow #44459 üzenetére
Szia,
Ahol D2-ben a képlet ha Excel 2016-od van legalább:
=(HOSSZ(SZÖVEGÖSSZEFŰZÉS("";IGAZ;$A$2:$A$10))-HOSSZ(HELYETTE(SZÖVEGÖSSZEFŰZÉS("";IGAZ;$A$2:$A$10);C2;"")))/HOSSZ(C2)
Vagy ez:
=SZORZATÖSSZEG(HOSSZ($A$2:$A$6)-HOSSZ(HELYETTE($A$2:$A$6;C2;"")))/HOSSZ(C2)
Az E-oszlopban pedig ez a képlet:
=HAHIBA(INDEX(A:A;ÖSSZESÍT(15;6;SOR($A$2:$A$10)/ELŐJEL(SZÖVEG.TALÁL(C2;$A$2:$A$10));1));"")
Power Query-vel is meg lehet oldani (ha igaz, hogy szavak mindig nagybetűvel kezdődnek) pár lépésben, ahol a legbonyolultabb függvény az első találat megkeresése.
.
üdvA tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
-
-
Delila_1
Topikgazda
válasz RedHarlow #50224 üzenetére
Úgy látom, minden sorodban szerepel az xyz szövegrész.
A lenti makró az A oszlopban az xyz szöveg után betesz egy sortörést.Sub Sortores()
Dim sor As Integer, b As Integer
sor = 1
Do While Cells(sor, 1) <> ""
b = InStr(Cells(sor, 1), "xyz")
If b > 0 Then Cells(sor, 1) = Left(Cells(sor, 1), b + 2) & Chr(10) & Mid(Cells(sor, 1), b + 3, 100)
sor = sor + 1
Loop
End Sub[ Szerkesztve ]
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
Új hozzászólás Aktív témák
- BMW topik
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- WLAN, WiFi, vezeték nélküli hálózat
- Marvel Snap
- Elemlámpa, zseblámpa
- bitpork: Balatoni autós tali 2024
- Modern monitorokra köthető 3dfx Voodoo kártya a fészerből
- Politika
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Autós topik látogatók beszélgetős, offolós topikja
- További aktív témák...
- PC JÁTÉKOK (OLCSÓ STEAM, EA , UPLAY KULCSOK ÉS SOKMINDEN MÁS IS 100% GARANCIA )
- Microsoft licencek KIVÉTELES ÁRON AZONNAL - UTALÁSSAL IS AUTOMATIKUS KÉZBESÍTÉS - Windows és Office
- Game Pass Ultimate előfizetések 1 - 25 hónapig azonnali kézbesítéssel a LEGOLCSÓBBAN!
- Windows, Office licencek a legolcsóbban, egyenesen a Microsoft-tól - 2990 Ft-tól!
- Játékkulcsok olcsón: Steam, Uplay, GoG, Origin, Xbox, PS stb.