[[20210423165117]] 『数式の転用について』(ニット帽) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『数式の転用について』(ニット帽)

sheet1のA1のセルをsheet2から値ではなく数式として参照し
sheet2内にある数値を計算する方法はありますか。

【sheet1】
A1 sum(A2:A3) 計算結果は30
A2 10
A3 20

【sheet2】 計算結果は300
A1 =Sheet1!A1 ←ここを値ではなく、数式として取り込みたい
A2 100
A3 200

< 使用 Excel:Excel2019、使用 OS:Windows10 >


 >sheet1のA1のセルをsheet2から値ではなく数式として参照
 >A1 =Sheet1!A1 ←ここを値ではなく、数式として取り込みたい
 食い違っていませんか。
 sheet2から、sheet2内にあるとはどういうことですか。
(pp) 2021/04/23(金) 18:09

 名前を aaa として名前の参照範囲を↓とすると
=EVALUATE(FORMULATEXT(Sheet1!A1))

 =aaa

 で一応計算されるみたいです。。。
(SoulMan) 2021/04/23(金) 18:22

 でも感覚的にはユーザー定義関数を作って
=MyEVALUATE(Sheet1!A1)
としたいですよね?

 Option Explicit
Function MyEvaluate(ByVal r As Range)
    Application.Volatile
    MyEvaluate = Evaluate(r.Formula)
End Function

 でもこれはどんな時にこういう事態になるんですか?
よかったら教えてください。。。
よかったらでいいので。。。。
(SoulMan) 2021/04/23(金) 20:25

回答ありがとうございます。

ただ、
名前を aaa として名前の参照範囲を↓とすると
の意味が理解できなく、実現できていません。
どのような、意味なのでしょうか?

(ニット帽) 2021/04/26(月) 16:33


 こんばんは!

 名前の参照範囲を↓としてください。。。
=EVALUATE(FORMULATEXT(Sheet1!A1))

 ちょっとわかり難かったですかね?

 aaaという名前を定義するのですけど、、、
数式→名前の管理→新規作成→
名前   aaa
参照範囲 =EVALUATE(FORMULATEXT(Sheet1!A1))

 EVALUATE は Excel 4.0のマクロ なのでワークシート上では使用出来ないのですね
なので名前の参照範囲の中にかいちゃおうという発想ですね。

 で、数式の代わりに
=aaa
と入力すると名前の中で
=EVALUATE(FORMULATEXT(Sheet1!A1))
が実行されて計算されるのですね。

 マクロのコードの中で実行するか
名前の参照範囲の中で実行するかの違いですね

 でも、私は我流なので有識者からするとこの説明にご指摘があるかもしれませんね(^^;
その場合は、有識者の指示に従ってくださいね。。。

 あっ、名前の時は、、数式を$で固定していないので違うセルを選択すると名前の参照範囲が容易にずれます。
ご注意願います。。。

 では、、では、、
(SoulMan) 2021/04/26(月) 20:25


の件について URL 貼っておきます。
Office TANAKA
http://www.officetanaka.net/excel/function/tips/tips57.htm
(pp) 2021/04/26(月) 21:39

SoulManさま

出来ました。
ありがとうございます。


理由ですが、
Sheet1(親)のメインシートに対して、
Sheet2(子)
Sheet3(子)
Sheet4(子)
.....
と沢山あり、子シートの方は、Sheet1のコピーから作られています。(今まで、コピーで対応しています)
ただ、当てはめる数値は、それぞれ別々な状態です。
Sheet1の計算式が変更があると、全てのシートを変更する必要が発生するため、手作業(一括置換)で対応していました。
そのため、Sheet1の計算式を、他シートで参照する関数がないか、探していたところです。

他に、良い方法があるのかもしれませんが、わからず、
思いついたことが、数式の参照でしたので、
質問させてもらいました。

(ニット帽) 2021/04/28(水) 10:30


 なるほどそんなシーンもあるかもしれませんね
最近、発想力が乏しくて😅
こちらこそ楽しく勉強させて頂きました。
ありがとうございました。
(SoulMan) 2021/04/28(水) 12:16

SoulManさま

追加の質問をさせてください。
上記の処理をGoogle Spreadsheetでも、実現することはできますか

(ニット帽) 2021/05/06(木) 11:48


たぶんできないと思います。

GASを使ってカスタム関数を作ることになりますが、
EVALUATEに相当するものが、GAS(ExcelのVBAに相当するもの)に無いようなので無理でしょう。
(なお、JavaScriptから継承?しているeval()メソッドはありますが、
これはSpreadSheetの式を対象とするものではないですね。)

(γ) 2021/05/06(木) 13:57


コメントありがとうございます。
Googleでは、できないこと了解しました。
今まで通り、ファイルサーバーで、
エクセルファイルを共有して対応します。
(ニット帽) 2021/05/08(土) 23:53

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.