アプリ版:「スタンプのみでお礼する」機能のリリースについて

セルA1には「1100」と言う数字が記載されています。

次にB1~B47は上から順番に「300」「325」「350」「375」「400」「425」「450」「475」「500」「525」「440」「468」「495」「523」「550」「578」「605」「633」「660」「688」「715」「743」「770」「798」「825」「853」「880」「908」「935」「963」「990」「1018」「1045」「1073」「1100」「1128」「1155」「1183」「1210」「1238」「1265」「1293」「1320」「1348」「1375」「1403」「1430」の数字が記入されています。

そしてセルC1に、上記数字のどれかを記入するとセルD1には((C1で選択した数字÷A1)×100)の計算式を表示させます。表示させる数字は四捨五入し小数第一位(例えば300だと27.3、350では31.8など)と言うルールです。

そこで質問ですがC1セルに「325」「523」「633」「688」「743」「798」「853」「908」「963」「1018」「1073」「1128」「1183」「1238」「1293」「1348」「1403」の数字を入力した場合はD1は小数第2位の所で切り捨て(例えば325では29.5、523では47.5など)と言う計算式などをD1に組む事は出来るのでしょうか?

A 回答 (4件)

数列にあんまり明確な規則性が無いので、簡易にF1からF17に「325」「523」「633」「688」「743」「798」「853」「908」「963」「1018」「1073」「1128」「1183」「1238」「1293」「1348」「1403」を列記(実際には上から詰めて並べなくても構わない)



D1には
=ROUND(C1/A1*100-0.05*COUNTIF(F:F,C1),1)
とでもしておきます。



もちろん
=IF(あったら,ROUNDDOWN(計算,1),ROUND(計算,1))
とかでもできます。

この回答への補足

なるほど、数字に規則性が無いため非常に難しいですね。
計算式で無くエクセルVBAを使用すると出来るのでしょうかね?
今回のは難題なので私は良く分かりませんね。

補足日時:2014/02/20 02:04
    • good
    • 0
この回答へのお礼

補足の件はすいませんでした。全然難しくなく最適な方法でした。そして基礎的な内容でしたね。今度は自分でちゃんと考え調べて分からなければ質問します。
この度はありがとうございました。

お礼日時:2014/02/21 16:10

>今回のは難題なので私は良く分かりませんね。



はて??
ROUND関数やCOUNTIFと言った、ごく当たり前のモノしか使ってません。
難しいところはどこにも無いと思いますが、回答した数式の一体どこが判らなかったのですか?



>計算式で無くエクセルVBAを使用すると出来るのでしょうかね?

回答したように、計算式で十分にできています。何が聞きたかったのでしょうねぇ?
少なくとも、これはマクロでないと出来ないようなご相談ではありません。





#感想もいいですけど、それよりあなたの問題を解決するための質問をしてください。
    • good
    • 0
この回答へのお礼

補足の件はすいませんでした。全然難しくなく最適な方法でした。そして基礎的な内容でしたね。今度は自分でちゃんと考え調べて分からなければ質問します。
この度はありがとうございました。

お礼日時:2014/02/21 16:13

 まず、



>そしてセルC1に、上記数字のどれかを記入すると

という件に関しては、C1セルに入力規則のドロップダウンリストを設定する事で、B1~B47に入力されている値の中から選択した値を入力する事が出来る様にして下さい。
 その際、「元の値」欄には

$B$1:$B$47

と入力する様にして下さい。
 もし、ドロップダウンリストの設定方法が判らない場合には、下記の参考URLのページを参考にして下さい。

【参考URL】
 よねさんのWordとExcelの小部屋 > Excel2007基本講座 > 入力規則の使い方【リスト編】 > 同一シートのリストを使う
  http://www.eurus.dti.ne.jp/~yoneyama/Excel2007/e …




 次に、


>上記数字のどれかを記入するとセルD1には((C1で選択した数字÷A1)×100)の計算式を表示させます。表示させる数字は四捨五入し小数第一位(例えば300だと27.3、350では31.8など)と言うルールです。

>C1セルに「325」「523」「633」「688」「743」「798」「853」「908」「963」「1018」「1073」「1128」「1183」「1238」「1293」「1348」「1403」の数字を入力した場合はD1は小数第2位の所で切り捨て(例えば325では29.5、523では47.5など)と言う計算式などをD1に組む事は出来るのでしょうか?


という件に関しては、F1~F17の範囲に「325」「523」「633」「688」「743」「798」「853」「908」「963」「1018」「1073」「1128」「1183」「1238」「1293」「1348」「1403」の数字を入力しておいた上で、D1セルには次の様な関数を入力されると良いと思います。

=IF(COUNT($A1,$C1)=2,ROUND($C1/$A1*100,1+(COUNTIF($F:$F,$C1)>0)),"")


 尚、もしも、F列等に「325」「523」「633」「688」「743」「798」「853」「908」「963」「1018」「1073」「1128」「1183」「1238」「1293」「1348」「1403」の数字を入力しておく事をせずに、関数だけで同じ事をする場合には、D1セルには次の様な関数を入力されると良いと思います。

=IF(COUNT($A1,$C1)=2,ROUND($C1/$A1*100,1+ISNUMBER(MATCH($C1,{325,523,633,688,743,798,853,908,963,1018,1073,1128,1183,1238,1293,1348,1403},0))),"")
    • good
    • 0
この回答へのお礼

凄いですね、この様な方法もあるのですね。今回は基礎的な内容で解決出来る範囲でした。今度はちゃんと調べ本を見て分からなければ相談します。この度はありがとうございました。

お礼日時:2014/02/21 16:11

>今回のは難題なので私は良く分かりませんね。


No2回答者さんが指摘の通り、難問ではありませんよ、
エクセルの一番右上のバツ×印の直ぐ下にある?ボタンをクリックしてから
次の2個の関数を勉強しましょう。

(ア)if を入力してクリックして、該当するところを調べる。
(イ)切捨て切上げ を入力してクリックして、該当するところを調べる。

もし勉強する時間がなく急ぎなら次の方法で答を出すことはできます。
しかし、他の場合に応用できませんから、前記(ア)(イ)等の他参考書で初歩的な関数を勉強するように習慣づけてください。

とりあえず答だけが必要なら
特定の数字をセルE1からE17 (邪魔にならない列ならどの列でも良い) に入力しておいて
セルD1に次の式をコピーして貼り付けるか、または次のとおりに入力する。

=IF(COUNTIF(E1:E17,C1)=1,ROUNDDOWN(C1/A1*100,1),ROUND(C1/A1*100,1))

ただし、特定の数字を他の列に入力(例えばG列)するなら
上式中のE1:E17はG1:G17に書き換えること。
    • good
    • 0
この回答へのお礼

難題ではありませんでした。自分で解決しようとせず人に頼りすぎた私がいけませんでした。これからは自分で考え本当に分からなければ相談します。この度は私の為に時間を割いていただきありがとうございました。

お礼日時:2014/02/21 16:13

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!