

No.4ベストアンサー
- 回答日時:
#3です。
5つの計算式にそれぞれ1~5の番号をつけ、
別のシートの一覧表に、材料ごとに使用するする計算のタイプを番号で入力しておいて、
VLOOKUPで【数量】・【単価】・【計算タイプの番号】が返るようします。
以下、数量・単価・計算タイプを返す数式をそれぞれ【数量】,【単価】,【タイプ】と表記します。
また、【タイプ】は、紙のとき1,ロープのとき2,木材のとき3が返るようにしたとします。
=CHOOSE(【タイプ】,B1*C1*【単価】*【数量】,(B1*【単価】+10)*【数量】,B1*7*3/1000*【単価】*【数量】,【タイプ4の計算式】,【タイプ5の計算式】)
こんな感じにしておけば、
紙のときは、B1*C1*【単価】*【数量】
ロープのときは、(B1*【単価】+10)*【数量】
木材のときは、B1*7*3/1000*【単価】*【数量】
で計算されます。
deus_ex_machina さん 回答ありがとうございました。
やりたかったことが完全解決できました。
少しむずかしく考えすぎていたようです。
choose関数はあまり使ったことがなかったですが
今後は覚えたことを応用させていきたいと思います。

No.3
- 回答日時:
・計算式がどのように変化するのか
(計算に使う値が違うのか、計算のやり方が違うのか)
・材料の種類がどの程度あるのか
によって話が違ってきます。
計算式の定数や係数部分が材料によって違うということであれば、VLOOKUP等を使って別表から引くことになります。
計算式の構造自体が材料によって違う場合、材料の種類が30未満であれば
下記のようにIFの代わりにCHOOSEを使って振り分けることもできます。
=CHOOSE(MATCH(A1,{"材料1","材料2","材料3","材料4","材料5","材料6","材料7","材料8","材料9"},0),数式1,数式2,数式3,数式4,数式5,数式6,数式7,数式8,数式9)
No.2
- 回答日時:
関数式のタイプぐらいを書かないと、質問になりません。
よう書かないならこんな質問コーナーに質問すべきではありません。
関数式の引数はセル番地が多いのですが、そのどの部分で変化し、
その中身は業務的に何なのか書かないと。
あるいは関数式のタイプなどが全然別の場合は、必ず1式にまとめられるという証明も、絶対できないと否定もできないでしょう。
ーー
それ(式のタイプ)が書けない(できない)なら文章で
(文章1)*(文章2)
とか
A列の会社名で決まる単価*数量(数量により単価など決まる)
とか、文章でかけないですか。
得意先ごとに品物ごとに割引率が違うという2次元ぐらいまでで
それ以上は、データベースを精緻に作るより他ないでしょう。
プロに任せる世界です。
ーー
何やかや言っているが、VLOOKUP関数(TRUE型やFALSE型)で済むような問題でないかと思いますが。
ーー
ほんとに材料により、ガラリと計算式が違う場合は、個別に考えざるを得ないでしょう。
ーー
>材料の種類によって計算式が違うため
表面的には違うのは違うが、見るセルが違う、とういう型ではないですか。
この点(型)に持っていくのが、エクセル関数でもプログラムでも、一番大事なスキルです。
この回答への補足
ご回答いただきありがとうございます。
ご指摘の通り、内容が不十分でわかりにくかった点大変申し訳ありませんでした。お詫びいたします。
補足説明させていただきます。
A列 B列 C列 D列 E列 F列
1行目 紙 50 20 1
2行目 ロープ 3 2
省略
50行目 木材 40 1
A1:A50の一つ一つのセルにリストが設定してあり、
30種類の中から選択できるようになっています。
B列~D列は使用量を入力します。
(1行目で言うとB1→50cm C1→20cm)
B列~D列が入力されるのはB列だけだったりB~D列全部使ったりです。
(数値を入れるセルを3つ用意いている)
E列は数量です。
B列~D列の数値を元に下記のような計算をして、F列に各行毎の計算結果が出るようにしたいのです。
紙=B1×C1×単価×数量
ロープ=((B1×単価)+10)×数量
木材=B50×7×3÷1000×数量×単価
(ロープの"10"、木材の7×3÷1000は固定です。)
リストで材料を選択するたびに計算式を変えていくことができるのかわからなかったので質問させていただいた次第です。
なお、材料の種類は30より増える可能性があります。
(別のシートに一覧表があります。)
また、式は上記の他2つあり、合計5種類あります。
実際にはこの計算シートをそのままアウトプットして提出するため、
現状は電卓で計算した結果を転記して使ってます。
この補足説明で大丈夫か自信ありませんが、よろしくおねがいいたします。
No.1
- 回答日時:
条件が見えないので具体的な回答ができませんが、
VBAによるユーザ定義関数をセルから呼び出せます。
セルの式=UserFnc(値,値)
ユーザ定義関数は、標準モジュールに以下の様に記述します。
Public Function userfnc(argA, argB) As Double
If argA < 100 Then
userfnc = argA * argB
ElseIf argB < 200 Then
userfnc = argA * argB + 10
ElseIf 条件 Then
式
End If
End Function
※ argA,argBなどの引数や、IF条件、式をいくつでも記述できます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(お金・保険・資産運用) 至急!【Wolt】各メニューの価格設定の簡単な計算方法 3 2023/03/05 11:58
- Excel(エクセル) エクセルで値ではなく関数を参照する方法 6 2023/03/19 00:50
- Excel(エクセル) IFERROR(IF()IF())のような形の構文が作れません 2 2023/02/05 17:51
- Chrome(クローム) Chromeの描画領域を2分割して異なるスクロール位置を同時に表示させることはできますか 1 2023/03/01 16:53
- Excel(エクセル) Excel(エクセル)でフィルター抽出後、非表示の行を計算しないで、合計を算出する方法 【内容】 添 4 2023/01/30 17:17
- Excel(エクセル) エクセルのSUM関数について 4 2023/04/18 10:37
- ダイエット・食事制限 調味料のカロリー 1 2022/05/25 09:02
- その他(Microsoft Office) 従業員増減対応で当番種類の増減対応な当番表 21 2022/07/19 07:30
- Excel(エクセル) EXCELピボットテーブル関数について 2 2023/04/10 20:35
- Visual Basic(VBA) Excel のユーザー定義関数でソルバーが動作しない 1 2022/09/05 19:51
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
時間単位の書き方について教え...
-
経常利益増加率⇒マイナス÷マイ...
-
建築用語?
-
縮尺60分の1の設計図を600分の1...
-
レンタルの料金設定について
-
鉄板の耐過重
-
H鋼 吊治具 強度計算
-
暦月の1ヶ月
-
残業時間を計算し且つ足りない...
-
40点満点を100点に換算する場合...
-
レシピに書かれた人数分以上に...
-
公共建築工事共通費積算基準(...
-
有効採光面積は窓のどこから計...
-
売り上げの15パーセントを渡さ...
-
工事の現場で困ってます。仮設...
-
玉掛けの 角度 法令基準は...
-
Excelについて質問です。 昨年...
-
IRRがマイナスになるとは?また...
-
台形の重心を求めるには
-
一つのセルに条件によって数式...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
時間単位の書き方について教え...
-
経常利益増加率⇒マイナス÷マイ...
-
鉄板の耐過重
-
レンタルの料金設定について
-
建築用語?
-
縮尺60分の1の設計図を600分の1...
-
2時間45分の勤務がなんで2.75時...
-
レシピに書かれた人数分以上に...
-
売り上げの15パーセントを渡さ...
-
暦月の1ヶ月
-
20%減少の計算教えてください。
-
IRRがマイナスになるとは?また...
-
「N/W」の意味を教えてください...
-
H鋼 吊治具 強度計算
-
パート面接時の筆記試験攻略方...
-
パート面接での筆記試験(計算問...
-
残業時間を計算し且つ足りない...
-
有効採光面積は窓のどこから計...
-
公共建築工事共通費積算基準(...
-
明けましておめでとうございま...
おすすめ情報