Excel segítség kéne. Van egy 2400 elemes listám, meg egy 210 elemes listám. A feladat, hogy a 2400-as listából kiválasszam azt a 210-et, amelyik mindkét listában szerepel, és melléjük beírjak egy megjegyzést. Hogy néz ki egy ilyen függvény?
Kelleni fog egy HA függvény, illetve egy keresőfüggvény. Kereső függvénynek első gondolatom az FKERES, de talán a DARABTELI lenne jobb.
Valami ilyesmit próbálnék:
=HA( 0 < DARABTELI( lista1; lista2eleme ); "megjegyzés"; "" )
A 2400 listaelem mind rendelkezik valami egyedi, rendezhető azonosítóval? Ez esetben egy FKERES függvény tökéletes a célra.
=FKERES(<keresett_érték>,<kereső_táblázat>,[eredmény_oszlopszáma],[intervallumon_keressen])
- A keresett érték az, ami alapján keresni fogsz táblázatban, tehát a már említett egyedi azonosító.
- A kereső táblázat az a táblázat, amiben keresni fogod ezt az értéket (A táblázat első oszlopában fog keresni, erre készülj fel)
- Az eredmény oszlopszáma az, ami; ha egyezőséget talál valamelyik sorban, ez adja meg, hogy hanyadik oszlop értékét kell visszaadnia.
- És lehetőséged van intervallumban keresni, tehát nem a konkrét értékeket fogja keresni a táblában, hanem az egyes sorokban levő értékek közti intervallumban is keres. (Ennél mindenképp szükséges hogy rendezve legyenek az értékek)
Bár most, hogy újra elolvasom, neked már megvan külön a 210 és külön a 2400, és csak megjegyzést kell írnod ahhoz, ami mindkettőben szerepel. Ezesetben a következőt tudom javasolni:
=HA( HIBÁS(HOL.VAN(<keresett_érték>,<kereső_tábla>,0));"";"Megjegyzés")
A HOL.VAN első paraméterben kapja az értéket, amit keresel, másodikban az oszlopot, amiben keresel, és harmadikként egy 0-t adj meg, azt jelezve, hogy pontos egyezést keresel. Ahol nem talál egyezőséget, ott egy #HIÁNYZIK hibát fog dobni. a HIBÁS() függvény pontosan azt dönti el, hogy a HOL.VAN függvényed hibára futott-e, vagy sem. a HA függvéned pedig az általa kiköpött Igaz-Hamis válasz alapján vagy beír megjegyzést, vagy nem.
Kérdező: Gondolom inkább makróra gondolsz, hogy ne kelljen minden mind a 210, pláne 2400 cellába átmásolni - persze az sem rossz megoldás.
Iskolás módszerrel:
Sub megjegyzes()
For kis = 1 To 210
For nagy = 1 To 2400
If Worksheets("Munka1").Cells(nagy, 1) = Worksheets("Munka1").Cells(kis, 4) Then
Worksheets("Munka1").Cells(nagy, 2) = "Megjegyzés..."
'vagy akár minden elemhez külön megjegyzés: Worksheets("Munka1").Cells(kis, 5)
Exit For 'ha megtalálta, akkor nem keres további egyezést, hanem ugrik a következő elemre
End If
Next nagy
Next kis
End Sub
Kis magyarázat a testreszabáshoz:
Cells(sor, oszlop) : értelemszerűen az adott sor-oszlopszámú cella tartalmát jelenti
Cells(nagy,1) : 2400-as lista az "A" oszlopban van
Cells(kis, 4) : 210-es lista a "D" oszlopban van
Cells(nagy,2) : megjegyzések a "B" oszlopba kerülnek
Cells(kis, 5) : 210-es lista külön megjegyzései az "E" oszlopban vannak
> ne kelljen minden mind a 210, pláne 2400 cellába átmásolni - persze az sem rossz megoldás.
Elegendő 210-be másolni és egy duplaklikkel (a cella jobb alsó sarkára) abszolválható. :)
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!