• ベストアンサー

Excel 他の関数処理で文字列(数)を少なくする方法

Excel    A  B  C  D  E  F 1      1  2  3  4  5 2  あ  0  0  0  100 100 3  い  20  0  0  200 20 4  う  0  30  0  300 30 5  え  0  0  40  400 40 6  お  20 30  0  500 25 7  か  0  25 35  600 30 8  き  30 0  40  700 35 9  く  20 25 35  800 27 A2 ~ A9 は テスト名称 B2 ~ F9 は 数字 1,2,3 が 0 の場合は 4 の 数字を F2 に 出力 1 or 2 or 3 に 数字が ある場合 平均(小数点以下四捨五入) A2 あ F2=100 A3 い F3=20 A6 お F6=(20+30)/2 A9 く F7=(20+25+35)/3 F2 = ROUND(IF(AND(B2=0,C2=0,D2=0),E2,IF(AND(B2=0,C2=0),D2,IF(AND(B2=0,D2=0),C2,IF(AND(C2=0,D2=0),B2,IF(B2=0,(C2+D2)/2,IF(C2=0,(B2+D2)/2,IF(D2=0,(B2+C2)/2,(B2+C2+D2)/3))))))),0) 以下 F3 ~ F9 まで 同じ 関数処理 他の関数で文字列(数)を短くできますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • taranko
  • ベストアンサー率21% (516/2403)
回答No.2

こんなのはいかがでしょうか? =ROUND(IF(B2+C2+D2=0,E2,(B2+C2+D2)/COUNTIF(B2:D2,"<>0")),0)

ititarou_j
質問者

お礼

ありがとうございます。

その他の回答 (1)

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

一例です。 F2に=IF(COUNTIF(B2:D2,0)=3,E2,ROUND(SUM(B2:D2)/COUNTIF(B2:D2,">0"),0))を入力、下方向にコピー

ititarou_j
質問者

お礼

ありがとうございます。

関連するQ&A

  • エクセルのROUND処理について教えて下さい。IF関数で条件指定

    詳しい方、教えて下さい!! エクセルで見積書を作成していて、素人ながら一応数式を入力して金額 が算出できるようにしています。その中で、ROUND処理をIF関数で条件 を指定した中で異なる桁数の数字に行いたいのですが、どうすればよい か分からず試行錯誤しています。 つまり、    A  B  C   D     E    F    G 1  1.0 式 空白 106,300 80% 85,000  85,000 2 89.0 m 1,900 169,100 80%  1,500 133,500 というデータで、 Cのセルには=IF(OR(A1=1,A1="",F1=""),"",ROUND(F1/E1,-2)) Dのセルには=IF(OR(A1="",E1=""),"",IF(A1=1,ROUND(F1/E1,-2),A1*C1)) Gのセルには=A1*F1 の数式の結果がそれぞれ入っています。 見積として客先に提出するため、Aのセルが1の場合はCのセルを空白に してDのセルにのみ数式の結果が出るようにしたいのです。 が、F1のセル(5桁)とF2のセル(4桁)のように数値の桁数が違う場合 に、四捨五入を行う桁数をそれぞれにF1=-2、F2=-1とする方法が分から ず困っています。桁数が違う場合には手入力で四捨五入の桁数を変えれ ばよいのでしょうが、それだと手間がかかる上に桁数の変更を忘れてし まうことがあり、間違いのもとなので、間違いにくい方法で数式を組み たいのです。 詳しい方、解決方法があれば回答お願い致します。

  • エクセル関数で教えてください!!

    エクセルで作成した表に計算式をいれたいのですが、 わからないので、ぜひ教えてください!! (内容) D15 のセルに A1×B2×C3×D3ーE3 という計算式が入っているとします。 D15の計算式の結果にまた条件をつけたいのです。その条件は 10万を超え10億未満のものは。上位4位以下の端数を四捨五入 の上、上位3位にとどめるというものです。 たぶんIF関数とROUND関数を併用するのでしょうが、実際式の 入れ方がわかりません。 もしご存知な方がいらっしゃればぜひ教えてください!! 宜しくお願いします☆

  • エクセルでの関数の書き方

    セルA1からF1があります。 A1がC1かD1で同じでかつ B1がC1かD1で同じ場合に、 D1の値をF1にセットしたいのですが、 どのように書けばよろしいでしょうか? EX. A1が1でB1が2の場合は C1がD1が1,2または2,1の場合のみ E1の値をF1にセットします。 COBOLで書くとこんな感じになると思います IF (A1=C1 OR A1=D1) AND (B1=C1 OR B1=D1) THEN MOVE D1 TO F1 END-IF. IF関数かAND関数を使用するような気がしますが、 思いつきません。 よろしくお願いいたします。 エクセル2000です。

  • エクセルの関数について

    こんにちは。 エクセル関数でわからないところがあるので、教えてください。 Round関数で、四捨五入の小数点以下の表示を切っています。 そうすると、その合計を取ると、実際は表示は小数点以下が 切れていても、元の数字は小数点が残っているので 合計を出した時に端数が合いません。 =IF(E5=0,"",G5) このG5に当たる個所が、Round関数が入っていて 合計が合いません。 ちなみにG5には、=ROUND(C6,2) こんな式が入っています。 C6の数値が小数点になっています。 分かる方、教えてください。よろしくお願いいたします。

  • エクセル関数

    エクセル関数を教えて下さい。 A×B=Cの計算でCが小数点以下の端数が出る場合、 答えのCを小数点以下を四捨五入して整数にする関数を教えて下さい。 CをROUND関数でDという整数に置き換えるのは分かりますが、乗算の答えCを同じセルで整数にしたいです。よろしくお願いします。

  • エクセルの関数。お願いします!

    任意の桁数で四捨五入するROUND関数についてお願いします。 A1「5678.492」の数値。 (ア)小数点以下を四捨五入しなさい。 (イ)1の位を四捨五入しなさい。 =ROUND(A1,○)の○には何が入るんでしょうか?

  • IF関数とROUNDの組み合わせが上手くいきません。

    初級者ですが、仕事で必要なので助けてください。 エクセル2003で、A1~F1の数字を掛算割算して、結果をG1に反映します。G1の計算結果が9万9千9百までは10の位まで四捨五入、10万以上なら100の位を四捨五入というふうにしたいのですが、どうも上手くいきません。(そもそもIF関数では無理なのでしょうか?) =IF(G1>=99999,ROUND(A1*B1/C1*D1*F1,-3),G1<=100000,ROUND(A1*B1/C1*D1*F1,-4)) この式をちょっと変えたりして色々試してみているのですが、-3,-4の設定で10の位、百の位は変えられても99999/100000の間では変化してくれません。どうすればよいのでしょうか。

  • エクセルの関数を教えてください

    下のような表で、E7に =IF(AND(D6>A1,OR(C7:C12<(A7-0.05))),"A",IF(AND(D6<A1,OR(B7:B12>(A7+0.05))),"B","")) と関数を入れましたが求めているものになりません。 文章にすると、D6がA1より大きかった場合かつC7からC12の間でA7から0.05を引いた数値が どれか一つでもあればA、D6がA1より小さかった場合かつB7からB12の間でA7から0.05を足 した数値がどれか一つでもあればBそれ以外は空白というものです。 正しい関数を教えてください。       A    B     C     D      E 1    98.483  98.501  98.446  98.477 2    98.477  98.482  98.442  98.452  3    98.449  98.461  98.365  98.372  4    98.372  98.396  98.350  98.387  5    98.388  98.472  98.379  98.414 6    98.412  98.479  98.389  98.439 7    98.433  98.603  98.430  98.555 8    98.559  98.579  98.465  98.500 9    98.500  98.600  98.467  98.569 10   98.568  98.635  98.530  98.546 11   98.548  98.579  98.486  98.494 12   98.497  98.569  98.460  98.534 13   98.534  98.565  98.527  98.542

  • エクセル関数を教えて下さい。

    ROUND関数で除算して、小数点以下を四捨五入させたセル(ROUND(A1/1.05、1))を合計する際、ROUND関数で求めた画面上の整数の合計をさせる関数を教えて下さい。SUM関数を使用すると、除算した小数点以下の数字にて集計されます。

  • PHP5における四捨五入について

    PHP5でラウンド関数を使用しても境界値の5の値を切り捨ててしまい,四捨五入が上手くできません。 具体的には,以下の感じです。 $C = ROUND($B / $A,2) "C=282.25" $D = ROUND($C,1) "D=282.2" ※データ型は特に定義していません。 どのようにしたら四捨五入が上手くできるか教えて頂けないでしょうか。よろしくお願いします。