タイトルだけだと当然伝わらないので説明させて頂きます。
D5セルに、金額(例:10,000円)
D6セルに、還元率(例:50%)
D7セルに、金額×還元率(例:5,000円)
が入っています。
上記のままなら何てことないのですが、
還元率は例えばこんなバリエーションがあります、
10/10(10割=100%=全額)
1/2(半分)
1/3(3分の1)、、、※これだけとは限らないので選択式は不可
何故困っているかというと、
D6セルの還元率には、計算結果の「50%」ではなく、見た目の計算式を表示したいのです。
つまり、
D6に「10/10」と入力すると、そのまま「10/10」と表示し、D7では「=D5*10/10」の結果表示、
「1/3」と入力するとそのまま式が表示されつつ、D7では「=D5*1/3」の結果表示されるようにしたい。
「=1/3」と入れてしまうと「0.333」と表示されてしまうのでNG
文字列として「1/3」が表示されるけどD7では「=D5*1/3」と計算したいのです。
別の作業セルを使用するのではなく、入力者はD6に素直に「1/3」と入力したい。
理想通りにいかないならどこまで妥協すれば実現できるか、、、
アドバイスお願いいたします。
A 回答 (6件)
- 最新から表示
- 回答順に表示
No.6
- 回答日時:
>帯分数にしてシリアル値化を防ぐ方法
まぁ、ルール、ってか「EXCELの使用上の注意」が
複雑化しすぎてて「人なら普通鋼解釈するだろ」を
理想的に解釈するプログラミングを実現できてない、
ってことでしょうね。
1/3
を「日付と解釈する」ってのも便利っちゃ便利ですが
本件ではむしろ余計なお世話なわけで。
複雑化してるんでしょうがないですね。
検索すれば結構な情報にヒットさせてくれる検索エンジンとか
1度でも触れた事が合って無料で提供してくれる情報提供者さんには
大いに感謝する限りです。
No.4
- 回答日時:
No.3です。
肝心な事書き忘れてましたが
質問者さんのご希望は満足できていると思います。
還元率は"1/3" とか "10/10" と入力しそのように表示されます。
(全角文字だとだめかもです)
-------------------
試してみた事追加。
0.9%
とかだと
0.9/100
のように書きたくなりますが
小数はだめみたいです。
9/1000
のようにごまかすしか。
No.3
- 回答日時:
詳しくないんですが
ちょっと調べて、試してみました。
"1/3" とか "10/10" を入力するセルの書式は「文字列」なのは変えず、
それを引用して計算するところで
VALUE("0 "&参照セル)
と記述すると分数表現な文字列を数値として解釈し計算してくれます。
""の中身は半角0と半角スペースです。
質問文の例だとセルD7を
=VALUE("0 "&D6)*D5
とします。
調べたてわかった事。
VALUE 関数で"1/3" とか "10/10" を数値変換すると「日付」と解釈され
シリアル値になってしまいますが、
分数を「帯分数」形式にすればこれを防げるのだそうで。
帯分数、とは整数部分を持つ分数です。
つまり
"1/3" なら"0 1/3"
のように入力します。
(これはセルに分数を直接入力する際もこのようになるようです。)
("10/10" などは約分されてしまうのも同様。)
それで、文字列な分数表現"1/3"とかをVALUE関数内で引用する際に
「帯分数」形式に変換(頭に0と半角スペースを足す)したわけです。
試してみた事。
分数の入力部分、数値は何でもOKではないみたいで、
デタラメだとエラーが出ます。
ルールがよくわかりません。32768以上はだめみたい?
それだけなら実用上問題なさそうですが
できました!
文字列を数式に変換して計算させてしまう方法素晴らしいです。
しかも帯分数にしてシリアル値化を防ぐ方法、感心しました!
あり得そうな入力値どれも結果が出て最高です。
No.2
- 回答日時:
こんにちは
ご質問の通りにはなりませんけれど・・
D6セルの書式設定を分数にしておけば、ある程度は満たすことができると思います。
ユーザ定義で書式を「??/??」などに設定します。
1/3を入力 → 1/3
1/2を入力 → 1/2
10/10を入力 → 1/1
2/4を入力 → 1/2
のように、約分できるところはされてしまいますけれど・・
(セル値はそのまま数値として扱うことが可能です)
そんなテク、ありがとうございます。
ちなみに「10/10」って表示されないと駄目みたいです・・・
詳細を確認したらパターンは限られるそうなので、プルダウンメニューにして、
選択によって式を計算できるようにするしかないと思いました。
(「1/3」を選んだら、「=D5*1/3」の結果表示)
No.1
- 回答日時:
>別の作業セルを使用するのではなく
つまり、1つのセルに、直接入力と関数(計算式)を
同時に設定したい、ということですね?
それは無理です。
直接入力するセルと、関数を設定するセルを別にする、
作業セルを作って、ステップを分けるしかありません。
>どこまで妥協すれば実現できるか
マクロを組むしかないですね。
該当セルに値が入力されたら、そのセルに計算が働く、
というマクロを組んでおけば、同一セルでの実現は可能です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) マクロだと数式が表示される 2 2022/09/10 14:48
- Excel(エクセル) 条件に合った数値の合計を表示させたい関数と条件指定の方法 3 2023/05/13 16:07
- Excel(エクセル) エクセルの散布図で新たに入力した値のデータラベルが空欄になる現象 1 2022/04/26 09:31
- Excel(エクセル) Excel2019、2021の日付、曜日の表示について 2 2022/11/29 15:01
- Excel(エクセル) エクセルシートの合計の変動 5 2022/04/05 15:56
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
- Excel(エクセル) エクセルのセルの書式設定・ユーザー定義の条件設定について 1 2022/08/17 21:56
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/02 10:20
- Excel(エクセル) エクセルでIF関数中にIFERROR関数を使いたいのですが???? 5 2022/04/08 13:24
- Visual Basic(VBA) Excel のユーザー定義関数でソルバーが動作しない 1 2022/09/05 19:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelで同じセルに箇条書きをし...
-
A1セルに入力したら、入力時間...
-
IF関数で0より大きい数値が入力...
-
参照先セルに値が入っていない...
-
エクセルで既に入力してある文...
-
Excel:文字と数字の組合せ、次...
-
値を入力後、自動的にアクティ...
-
Excel マクロ モジュラス43 vba
-
エクセルで時間の判定をしてい...
-
エクセルで複数の条件で掛け算...
-
yyyy/mm/ddからyyyy/mmへの変換
-
エクセルの数式がかぶって、選...
-
空白でないセルの値を返す方法...
-
エクセルで10分ごとの時刻の...
-
バーコードが読み取れない原因...
-
excel 関数にて文字を0として認...
-
Excelで配列数式を入力できない
-
エクセルのセル空白時にセルを...
-
EXCELのセル上のURLを...
-
Excelでセルに入力されたカラー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
A1セルに入力したら、入力時間...
-
Excelで同じセルに箇条書きをし...
-
参照先セルに値が入っていない...
-
IF関数で0より大きい数値が入力...
-
Excel:文字と数字の組合せ、次...
-
エクセルで既に入力してある文...
-
値を入力後、自動的にアクティ...
-
エクセルの数式がかぶって、選...
-
エクセルで時間の判定をしてい...
-
空白でないセルの値を返す方法...
-
Excelでセルに入力されたカラー...
-
yyyy/mm/ddからyyyy/mmへの変換
-
入力したところまでを自動的に...
-
excel 関数にて文字を0として認...
-
バーコードが読み取れない原因...
-
エクセルで複数の条件で掛け算...
-
ExcelVBAでセルを編集状態にす...
-
エクセルで、特定のセルの内容...
-
【vba】指定範囲の中に任意の文...
-
エクセルで10分ごとの時刻の...
おすすめ情報