Hallo, ich bin völlig neu in Excel VBA. Zuerst möchte ich die Daten kopieren, wenn die Bedingung erfüllt ist (kopiere Daten mit Bezug auf 144). Zweitens, vergleiche die Zellen, wenn es IT-Operationen (Tabelle1) zu IT-Operationen (Tabelle2), dann kopiere den Preis (Geld) nach Spalte F. Wenn die Variable nicht vorhanden ist, lassen Sie das Feld leer.
Antwort
Dies kann mit Formeln erfolgen. Hier ist eine Art zu denken, die Spalte F mit den Preisen für die übereinstimmenden Artikel in der Spalte E zu füllen, indem man die Nummer in der letzten Reihe in E (144 Total
) anpasst; was ich annehmen soll ist E10
in diesem Fall.
Gesamtformel in F1
, die Sie dann nach unten ziehen ist:
=IFERROR(IFERROR(VLOOKUP(E1,INDIRECT(CELL("address",OFFSET($H$1,MATCH(1*LEFT($E$10,FIND(" ",TRIM($E$10),1)-1),$G:$G,0)-1,,1,1))&":"&CELL("address",OFFSET($I$1,MATCH($E$10,$G:$G,0)-1,,1,1))),2,FALSE),VLOOKUP(E1,G:I,3,FALSE)),"")
In den Schritten:
die Anzahl von Interesse Extract z.B. 144
, und jeder nachlauf loszuwerden/führende Leerzeichen verwenden:
LEFT($E$10,FIND(" ",TRIM($E$10),1)-1)
finden, welche Zeile dieser Wert in ist, da dies die erste Zeile des Lookup-Bereichs für diese Zahl sein wird. *1
wandelt Text in eine Zahl um.
MATCH(1*LEFT($E$10,FIND(" ",TRIM($E$10),1)-1),$G:$G,0)
Dies gibt Zeile 9.
Wir etwas einfacher zu finden die letzte Zeile des Bereichs verwenden, die 144 Total
MATCH($E$10,$G:$G,0)
Dies gibt Reihe hält 15. So kennen wir die Daten liegt zwischen den Zeilen 9 und 15 für 144
.
Wir können dies in einen Bereich für die Verwendung in einem VLOOKUP
mit INDIRECT
und OFFSET
drehen.
=CELL("address",OFFSET($G$1,MATCH(1*LEFT($E$10,FIND(" ",TRIM($E$10),1)-1),$G:$G,0)-1,,1,1))&":"&CELL("address",OFFSET($H$1,MATCH($E$10,$G:$G,0)-1,,1,1))
Dies gibt uns $G$9:$H$15
. Beachten Sie Anpassungen von -1
, setzen Sie OFFSET
zurück in die rechte Reihe, und dass die OFFSET
Startzellen in verschiedenen Spalten sind, um die für die VLOOKUP
erforderlichen Spalten bereitzustellen.
So können wir nun Spalten E-Werte z.B. Enhancement
, in unserem neu definierten Bereich, die über INDIRECT
zugegriffen wird:
=VLOOKUP(E1,INDIRECT(CELL("address",OFFSET($H$1,MATCH(1*LEFT($E$10,FIND(" ",TRIM($E$10),1)-1),$G:$G,0)-1,,1,1))&":"&CELL("address",OFFSET($I$1,MATCH($E$10,$G:$G,0)-1,,1,1))),2,FALSE)
Dies wird VLOOKUP(E1,$G$9:$H$15,2,FALSE)
sagen, das heißt erhalten die price
Spalte aus dem Bereich für die in E1
angegebene Element.
Wenn dies nicht gefunden wird, d. H. #N/A
, können wir dies verwenden, um zuerst zu überprüfen, ob dies an der verbundenen Zelle liegt, die die 144 Total
; wo der Wert tatsächlich in Spalte G nicht H ist, und verwenden Sie eine IFERROR
zu sagen, wenn nicht in $G$9:$H$15
gefunden, dann versuchen Sie für eine Übereinstimmung mit Spalten G:I
und Spalte 3 zurückgeben.
, die mit Pseudo-Formel, mit priorLookup
als Platzhalter, für die in den Schritten oben beschriebenen Formel, wie folgt aussieht:
IFERROR(priorLookup, VLOOKUP(E1,G:I,3,FALSE))
Wenn dies noch #N/A
gibt, wissen wir den Wert nicht vorhanden ist, und wir sollten zurückkehren ""
. Das können wir damit umgehen mit einem anderen IFERROR
:
IFERROR(IFERROR(priorLookup, VLOOKUP(E1,G:I,3,FALSE)),"")
uns die gesamte Formel zu Beginn angegeben So geben.
Hier ist es in dem Blatt verwendet wird:
- 1. Kopieren Paste mehrere Zellen Excel VBA
- 2. Vba deaktivieren Kopieren Paste
- 3. Excel VBA Paste Screenshot in MS malen
- 4. Kopieren und spezielle Paste, Werte mit VBA
- 5. Kopieren Einfügen Charts Excel VBA
- 6. Verschachtelte Copy/Paste-Schleifen in Excel VBA
- 7. Excel Vba - Zeilennummer kopieren
- 8. Excel VBA Kopieren/Einfügen Fehler
- 9. Excel Vba Bild auf neues Blatt kopieren
- 10. Excel-VBA-Paste auf den letzte Zeile von Daten
- 11. Excel VBA Makro Aufnahme überspringen Blanko Kopierte wiederholte Paste
- 12. Excel VBA Kopieren/Einfügen gleiche Zeile
- 13. Vergleichen, Kopieren und Einfügen mit VBA Excel
- 14. Excel VBA Zeile automatisch kopieren
- 15. Kopieren eines Bildes - Excel VBA
- 16. Excel VBA mehrere Zeilen kopieren
- 17. Excel Vba Kopieren und Einfügen
- 18. Kopieren einfügen als Werte Excel VBA
- 19. Excel 2010 VBA Makro Kopieren/Einfügen
- 20. Paste vba Array
- 21. Excel-Wenn Fall kopieren Paste aus einem anderen Blatt
- 22. Excel-Formel Paste zu kopieren und den Wert der doppelten
- 23. Kopieren von Werten und Format in VBA-Makro Excel
- 24. VBA Excel 2010 - Paste direkt aus der Zwischenablage
- 25. Excel VBA, schneiden Paste hinzufügen und bearbeiten Text
- 26. CSV Kopieren Paste Text Problem
- 27. VBA Copy & Paste Loop (Feldnummer erzeugen)
- 28. Excel VBA - Filtern und Kopieren in mehreren
- 29. Excel VBA Datei kopieren, aber nicht einfügen
- 30. Kopieren von großen Datenmengen in VBA Excel
Abgesehen von nicht zu verstehen, was Sie tun, gibt Ihre Frage absolut keine Hinweise auf, was das Problem Sie konfrontiert sind ist. – YowE3K
Willkommen bei S.O! Hast du irgendwas probiert? Wenn ja, bitte, geben Sie den Code an. Schaut euch die [tour] (http://stackoverflow.com/tour) und [how to ask] (http://stackoverflow.com/help/how-to-ask) an. Freundliche Erinnerung: StackOverflow ist kein "Wir-Code für Sie" -Dienstanbieter. [Einführung in VBA] (https://blog.udemy.com/excel-macros-tutorial/) oder [Mid-Advanced Tutorials] (http://analysistabs.com/excel-vba/codes-examples-macros-how-tos-most-useful-basics-advanced/) und mein [persönlicher Favorit] (http://analystcave.com/excel-vba-tutorial/) – Sgdva