Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Excel
  indirect

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  indirect (3252 mal gelesen)
daniu
Mitglied
Mechanik-Entwickler


Sehen Sie sich das Profil von daniu an!   Senden Sie eine Private Message an daniu  Schreiben Sie einen Gästebucheintrag für daniu

Beiträge: 866
Registriert: 03.11.2004

Intel Xeon W3550
12GB RAM; NVidia Quadro 4000
Win 7 Enterprise 64bit; NX7.5
TeamCenter 8

erstellt am: 10. Aug. 2012 10:31    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,

bei meinem Excel geht indirect() nicht sondern nur indirekt - im Internet findet man aber als englisches Original von indirekt: indirect.

Normal nimmt mein Excel englische Bezeichnungen - mir ist das lieber, weil ich dann nicht übersetzen muss, wenn ich das Excel ins Ausland gebe...

Gruß
Daniel

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

runkelruebe
Moderator
Straßen- / Tiefbau




Sehen Sie sich das Profil von runkelruebe an!   Senden Sie eine Private Message an runkelruebe  Schreiben Sie einen Gästebucheintrag für runkelruebe

Beiträge: 8075
Registriert: 09.03.2006

MS-Office 365 ProPlus x86
WIN7(x64)

erstellt am: 10. Aug. 2012 11:47    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für daniu 10 Unities + Antwort hilfreich

Moin,

Office-Version? Bitte Systeminfo ans Brett anpassen, danke.

Google hat folgende Meinung:
>> klick1 <<

Interessant finde ich z.B. >> diese << Erklärung von Thomas Ramel ganz unten, nach der Du das gar nicht brauchst.

Und zwei Listen:
>> klick1 <<
>> klick2 <<

evtl. hilft Dir irgendwas davon ja schon weiter.

------------------
Gruß,
runkelruebe          Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße...

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

daniu
Mitglied
Mechanik-Entwickler


Sehen Sie sich das Profil von daniu an!   Senden Sie eine Private Message an daniu  Schreiben Sie einen Gästebucheintrag für daniu

Beiträge: 866
Registriert: 03.11.2004

Intel Xeon W3550
12GB RAM; NVidia Quadro 4000
Win 7 Enterprise 64bit; NX7.5
TeamCenter 8

erstellt am: 13. Aug. 2012 17:01    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi,

OK - trotzdem Problem:
ich würde gerne indirekt in zusammenhang mit einem Excel VBA Script verwenden und zwar mit der Linst (RGP Funktion)

Ausgangspunkt ist folgender Ausdruck:
=INDEX(RGP(E9:E19;A9:A19);1)

9 und 19 sollen variabel sein. Am Ende am liebsten über einen S-Verweis, aber zunächst Mal würde ich die beiden gerne einfach festlegen können ...

Leider funktioniert schon in Excel das:
=INDEX(RGP(INDIREKT(E32))

nicht

(wobei in E32 genau: E9:E19;A9:A19 steht)

ich bekomme #Bezug

Was kann ich machen? Muss E32 ein bestimmtes Format haben? Auch mit Kommas statt Strichpunkt klappt es nicht und auch nicht, wenn ich alles einzeln zusammensetze, also in 2 einzelne Zellen 9 und 19 schreibe.

Grüße
Daniel

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Comos User
Mitglied



Sehen Sie sich das Profil von Comos User an!   Senden Sie eine Private Message an Comos User  Schreiben Sie einen Gästebucheintrag für Comos User

Beiträge: 112
Registriert: 23.03.2010

erstellt am: 14. Aug. 2012 08:33    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für daniu 10 Unities + Antwort hilfreich

Moin Daniel,

1. Die Funktion RGP erwartet 1 bis 4 Parameter, wobei die beiden ersten vom Typ Range sind, das mußt du dann auch so übergeben. z.B.

Code:
=INDEX(RGP(INDIREKT(E32);INDIREKT(E33)))
wobei in E32 dann "E9:E19" und in E33 "A9:A19" stehen könnte
oder auch
Code:
=INDEX(RGP(INDIREKT("E" & E32 & ":E" & E33);INDIREKT("A" & E32 & ":A" & E33)))
wobei dann in E32 die 9 und in E33 die 19 stehen sollte.

Ich will jedoch nicht versäumen vor der intensieven Nutzung von INDIREKT zu waren, denn erstens ist die Funktion (also INDIREKT) verständlicherweisen aufwendig und somit langsam, und zweites führt es dazu, dass der gesammte Ausdruck 'volatil' wird. Das heißt er wird bei jeder Änderung im Tabellenblatt (egal ob das Ergebniss dadurch beeinfußt wird oder nicht) neu berechnet, und das ist bei Statistikfunktionen ja nicht gerade trivial.

2. In VBA wird die Sache etwas anders notiert. Die Funktion heist 'Workseetfunction.LinEst' und erwartet die selben Parameter. Also etwa so:

Code:
Dim XX As Range
Dim YY As Range

Dim x As Long
Dim y As Long

y = 9 'hier kannst du natürlich belibige Werte zuweisen
x = 19

Set XX = Range(Cells(y, 5), cell(x, 5)) ' vobei 5 für Spalte E steht
Set YY = Range(Cells(y, 1), cell(x, 1)) ' vobei 1 für Spalte A steht
'auch die Spalten könntest du natürlich Variabel halten

erg = worksheetfunction.LinEst(XX, YY)


Ich hoffe dir damit ein wenig geholfen zu haben

Gruß
Peter

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

daniu
Mitglied
Mechanik-Entwickler


Sehen Sie sich das Profil von daniu an!   Senden Sie eine Private Message an daniu  Schreiben Sie einen Gästebucheintrag für daniu

Beiträge: 866
Registriert: 03.11.2004

Intel Xeon W3550
12GB RAM; NVidia Quadro 4000
Win 7 Enterprise 64bit; NX7.5
TeamCenter 8

erstellt am: 14. Aug. 2012 09:47    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi!

Werde das Mal nachvollziehen. Der erste Teil funktioniert schonmal.

Das mit dem volatil habe ich schon gelesen, ist in dem Fall aber erstens nicht schlimm und zweitens wohl auch nicht anders zu machen. Ich möchte eine große Anzahl an Blättern abarbeiten. Wie lange das geht, ist eher egal.

Kann ich solche Formeln in VBA nicht auch einfach mit .Formula = zuweisen?

Grüße
Daniel

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

daniu
Mitglied
Mechanik-Entwickler


Sehen Sie sich das Profil von daniu an!   Senden Sie eine Private Message an daniu  Schreiben Sie einen Gästebucheintrag für daniu

Beiträge: 866
Registriert: 03.11.2004

Intel Xeon W3550
12GB RAM; NVidia Quadro 4000
Win 7 Enterprise 64bit; NX7.5
TeamCenter 8

erstellt am: 24. Aug. 2012 09:18    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi,

leider muss ich das ganze jetzt aus bestimmten Gründen in R1C1 umformulieren, deshalb nochmal.

Dabei hab ich allerdings das gleiche Problem - und zwar schon bei Indirekt:

ich schreibe in eine Zelle:
=INDIREKT("Z" & Z(1)S & "S1")
in der Zelle drunter steht 9, sodass ich davon ausgehen würde, dass aus Indirekt: "Z9S1" wird und er mir den entsprechenden Inhalt liefert. Ich bekomme aber ein #Bezug

Entsprechend führt:
=Verketten("Z" & Z(1)S & "S1")
zu:
Z9S1

und:
=Z9S1
zu:
-1 (was in Zelle Z9S1 steht)

Was mach ich falsch?

Gruß
Daniel

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Comos User
Mitglied



Sehen Sie sich das Profil von Comos User an!   Senden Sie eine Private Message an Comos User  Schreiben Sie einen Gästebucheintrag für Comos User

Beiträge: 112
Registriert: 23.03.2010

erstellt am: 24. Aug. 2012 10:09    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für daniu 10 Unities + Antwort hilfreich

Hi Daniel,

Du mußt der Indirekt - Funktion sagen daß sie RC Bezüge (bzw keine A1 Bezüge) zuerwarten hatt.

Code:
=INDIREKT("Z" & Z(1)S & "S1";FALSCH)

Steht auch so in der Hilfe!

Gruß
Peter

[Diese Nachricht wurde von Comos User am 24. Aug. 2012 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

daniu
Mitglied
Mechanik-Entwickler


Sehen Sie sich das Profil von daniu an!   Senden Sie eine Private Message an daniu  Schreiben Sie einen Gästebucheintrag für daniu

Beiträge: 866
Registriert: 03.11.2004

Intel Xeon W3550
12GB RAM; NVidia Quadro 4000
Win 7 Enterprise 64bit; NX7.5
TeamCenter 8

erstellt am: 24. Aug. 2012 12:09    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi,

Das hat mich schon viel weiter gebracht. Leider geht es grad so weiter:
ich möchte die Formel in VBA ausgeben lassen. Normalerweise muss ich ja in VBA englisch, also R1C1 programmieren. Die Teile, die ich aber im Indirect habe, kommen dann in Excel auch als R1C1 an, obwohl mein excel deutsch ist.

Muss ich in dem Teil von indirect mit Z und S programmieren? Heißt dass, das ich damit keine Scripte schreiben kann, die international sind?

Gruß
Daniel

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

daniu
Mitglied
Mechanik-Entwickler


Sehen Sie sich das Profil von daniu an!   Senden Sie eine Private Message an daniu  Schreiben Sie einen Gästebucheintrag für daniu

Beiträge: 866
Registriert: 03.11.2004

Intel Xeon W3550
12GB RAM; NVidia Quadro 4000
Win 7 Enterprise 64bit; NX7.5
TeamCenter 8

erstellt am: 24. Aug. 2012 12:16    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Comos User
Mitglied



Sehen Sie sich das Profil von Comos User an!   Senden Sie eine Private Message an Comos User  Schreiben Sie einen Gästebucheintrag für Comos User

Beiträge: 112
Registriert: 23.03.2010

erstellt am: 24. Aug. 2012 13:44    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für daniu 10 Unities + Antwort hilfreich

Hi Daniel,

Zitat:
Heißt dass, das ich damit keine Scripte schreiben kann, die international sind?
eigentlich nicht.
1. Scripe sind immer international
2. Bei Formeln hatt man die Wahl zwischen .Formula und FormulaLocal, (auch in der Variante R1C1)
3. Der Inhalt von Strings (und ein solcher ist ja der Parameter von INDIREKT) wir niemals übersetzt, wäre auch fatal

Also nur wer mit VBA Formeln schreibt (was allein schon ungewöhnlich ist) und dann auch noch Funktionen wie Indirekt verwendet stößt auf solche Probleme.

An deiner stelle würde ich mich entscheiden,
- willst du eine Lösung mit VBA, dann brauchst du kein indirekt
- willst du eine Lösung mit Formeln, dann stellt sich diese Frage nicht

Als (faulen) Kompromiss könnte man nur für Indirekt auch die A1 Schreibweise nutzen. Wie gezeigt wird die Arbeitsweise von Indirekt über einen Parameter gesteuert (unabhängig von den Allgemeinen EXCEL Einstellungen).

Gruß
Peter

P.S. es gibt in Excel schlimmere Sprachverwirrungen >>Klick<<

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

daniu
Mitglied
Mechanik-Entwickler


Sehen Sie sich das Profil von daniu an!   Senden Sie eine Private Message an daniu  Schreiben Sie einen Gästebucheintrag für daniu

Beiträge: 866
Registriert: 03.11.2004

Intel Xeon W3550
12GB RAM; NVidia Quadro 4000
Win 7 Enterprise 64bit; NX7.5
TeamCenter 8

erstellt am: 27. Aug. 2012 13:35    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi,

ich finde das nicht sooo ungewöhnlich und finde es (in meiner Situation) sehr passend. Ich werte dutzende von Zahlen in Excel aus und möchte danach schnell in der Lage sein, kleine Änderungen an der Auswertung zu machen. Mit diesem Konstrukt kann ich theoretisch die Werte von hunderten Datenblättern Mal kurz anders berechnen lassen. Würde ich das alles fix in vba machen, müsste ich dazu dann alles neu berechnen lassen.

Naja - wie auch immer. Der Grund, dass ich R1C1 nehmen möchte, ist, dass ich die gesamte Prozedur rechts neben der ersten Berechnung noch einmal durchführen möchte. Würde ich das in A1 machen, müsste ich viele Befehle 2 Mal schreiben. So, kann ich die Spalte mit einer Variable versehen, die entsprechend hochzählen und die Prozedur nochmal durchziehen.

Ich mach es jetzt mit Adresse() - da geht das dann auch ...

Grüße

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz