Input variabile formula master Excel


1

potresti farmi sapere se quello che sto cercando di fare qui è realizzabile in qualche modo? Ho la sensazione che INDIRETTO possa tornare utile, ma la mia mente non è stata in grado di escogitare come sarebbe. Il mio obiettivo è simile nel concetto a un'analisi what-if, ma invece di una tabella, sarebbe utilizzare una formula a cella singola che fa riferimento a una formula master e ad alcuni input. What-If non funziona qui, perché gli input non sono organizzati in modo ordinato nel mio foglio di analisi.

Ecco la storia:

Sto creando un foglio di calcolo ("AnalysisSheet") che utilizzo per prevedere e analizzare i risultati durante la produzione della birra.

Prendo molte misurazioni durante il processo per il controllo di qualità, e molto spesso la stessa formula verrà applicata ai punti di dati grezzi multipli in varie fasi dell'analisi (ad esempio conversione del volume del liquido caldo in volume del liquido freddo con semplice approssimazione dell'espansione termica).

Queste formule possono essere complesse e quindi disordinate da ripetere ogni volta, quindi vorrei creare un foglio separato ("FormulaSheet") che abbia le formule "master" ordinatamente disposte (insieme a input fittizi), in modo che io possa semplicemente fare riferimento quelle formule principali dal "Foglio di analisi" insieme ai valori di input da sostituire negli input fittizi.

Ecco un esempio di una formula semplice:

In "FormulaSheet" :

A1: 20 [Valore di input fittizio volume]

A2: 80 [Valore di input fittizio della temperatura]

A3: = A2 * (1-0.04 * (A3-20) / 80) [Formula "Master"]

Ora in "AnalysisSheet" :

F7: 90 [Lettura della temperatura]

F11: 40 [Lettura volume]

F13: = Calcolo come FormulaSheet! A3, ma sostituendo il relativo FormulaSheet di riferimento di input! A1 con AnalysisSheet! F11 e FormulaSheet! A2 con AnalysisSheet! F7

La mia domanda è sostanzialmente:

Cosa dovrebbe essere inserito in F13 per eseguire ciò che descrivo?

Risposte:


1

Non sono sicuro che puoi fare quello che stai descrivendo, ma ho visto un'ottima pagina sulla definizione delle tue funzioni:
https://www.dummies.com/software/microsoft-office/excel/how-to- creare--Excel-funzioni personalizzate /

Richiede di scrivere la funzione in VBA, ma non è così difficile come sembra.

  1. Apri gli strumenti di sviluppo. Di solito è necessario accedere a Preferenze di Excel> Visualizza> Mostra scheda Sviluppatore.
  2. Vai alla scheda Sviluppatore appena visualizzata e fai clic Visual Basic.
  3. Nella finestra dell'Editor VB che si è aperta, selezionare Insert > Module.
  4. Inserisci le tue funzioni

Per esempio:

Public Function HotToColdVolume(temperature As Integer, volume As Integer)
    HotToColdVolume = volume * (1 - 0.04 * (temperature - 20) / 80)
End Function

Nota È necessario salvare il foglio di calcolo come cartella di lavoro abilitata per le macro (.xlsm).

Ora nel tuo foglio di calcolo puoi semplicemente chiamare:

=HotToColdVolume(80,20)

Grazie Ian - Ho pensato che stavo provando a fare qualcosa al di là della capacità di semplici formule cellulari. La funzione VBA sembra essere un percorso decente qui e apprezzo le tue chiare istruzioni su come implementare. In effetti speravo di poter evitare VBA, per motivi di compatibilità dei file (ovvero apertura di xlsm sul dispositivo mobile per riferimento) e, naturalmente, il lavoro aggiunto, dato che avrò ancora il foglio della formula principale per un rapido utilizzo degli "strumenti calcolatrice" semi-manuali. Se qualcuno sa come evitare le funzioni VBA qui, sarei felice! Altrimenti mi dimetterò per fare il doppio lavoro :)
Dieter,

@Dieter Ho trovato un altro modo per farlo utilizzando le macro XL4. Non devi scrivere VBA e invece fai riferimento a queste macro speciali all'interno di intervalli denominati. Ma richiede comunque il salvataggio come .xlsmfile :( Altrimenti penso che ciò che stai proponendo sia impossibile.
Ian

1

Ok in questo modo non usa VBA, ma è probabilmente peggio. Apparentemente Excel aveva queste funzioni "Excel 4.0" che potevi usare in nomi definiti. Fanno quello che vuoi, ma devono comunque essere salvati in un .xlsmfile:
Nome definito di Excel 4.0

Livello di hacking 1

C'è una funzione (?) Chiamata EVALUATE(Non riesco a trovare alcuna documentazione ufficiale su questo, ma questa pagina lo spiega) che può valutare il testo come una funzione. Ma non puoi digitarlo direttamente in una cella, è necessario "eseguirlo" da un intervallo denominato:
Valutare l'intervallo denominato

Naturalmente il problema è che se provi a valutare la formula A2*(1-0.04*(A3-20)/80)non riesci a specificare i tuoi input.

Livello di hack 2

Nella tua formula principale puoi specificare un OFFSET, ma hai bisogno di una cella di riferimento. Non puoi semplicemente fare riferimento A1per gli stessi motivi di prima. È necessario un modo per fare riferimento a "questa" cella. Inserisci un altro genio hack che ho trovato qui . Seleziona la cella A1, crea un intervallo denominato (ad es. THIS_CELL), Inserisci la formula =!A1(! Significa solo "questo foglio" ).

Ora se vuoi fare riferimento alla cella immediatamente a destra (1 col di fronte), usi:

OFFSET(THIS_CELL,0,1)

Quindi nella tua pagina della formula principale metti le formule nella colonna A e gli argomenti nelle colonne B, C, D, ecc. E ottieni una formula enormemente brutta come questa:

=OFFSET(THIS_CELL,0,1)*(1-0.04*(OFFSET(THIS_CELL,0,2)-20)/80)

Formula offset Excel

Combina gli hack

Ora devi solo creare un intervallo denominato che EVALUATEè la FORMULATEXTformula di fantasia con offset integrati:
Intervallo denominato finale di Excel

=EVALUATE(FORMULATEXT(MasterFormulaTest!$A$2))

Inserisci l'intervallo denominato in una cella e il gioco è fatto!

Formula finale di Excel

Tutto senza VBA, gli stessi svantaggi di un VBA, ma molto più complicato del semplice utilizzo di VBA. Peggio ancora.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.