• ベストアンサー

関数について教えてください。

エクセルについてわからない点があり、 質問を投稿しました。 ※エクセル初心者です。 以下のようなエクセルデータなのですが、 ★のついているところを関数で導き出したいです。    |売上|売上|売上|売上| ----------------------------------- A店 |100| 20|180|400 |★(4) --------------------------------- B店 | 10|100|店休| 50 |★(3) ----------------------------------- A店、B店各平均を求めたいけれど、 B店が店休日で売上が無い場合、 A店とB店では 平均を求める場合の 数値が違ってきてしまっているので、 COUNTA関数とかで、でどうにかならないものでしょうか?? =COUNTIF(範囲,"売上")では売上と入力されたセルだけカウントされてしまいますし… イメージとしては… =SUMIF(範囲,"売上",合計範囲)  ↑ここがCOUNTAならいいのに! という感じなのですが、 何か手はないでしょうか? よろしくお願いします。

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

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.5

次のようにすればよいでしょう。 例えば1行目には3列ごとに日付が入力されるとします。 2行目には入荷数、返却数、売上の文字列が3列ごとに繰り返し入力されるとします。 そこで例えばCR列まで入力される可能性があるのでしたらCS2セルには平均とかの文字を入力し、CS3セルには次の式を入力して下方にドラッグコピーします。 =IF(SUMPRODUCT((A$2:CR$2="売上")*(A3:CR3<>""))=0,"",(SUMIF(A$2:CR$2,"売上",A3:CR3)/SUMPRODUCT((A$2:CR$2="売上")*(A3:CR3<>"")))) この式によって2行目に売上の文字があり、しかもその列に売上のデータが有る場合についてそれらの平均の売上が表示されます。

yukayukawa
質問者

お礼

SUMPRODUCT関数! 知りませんでした…(^^; 素人過ぎですね…すみません。 この関数でいけそうです! ありがとうございました!

その他の回答 (4)

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.4

方法1) 単純に数式を =AVERAGE(D2,G2,J2,M2) のように作成する事で,それぞれのセルに「記入や計算されている数字」の平均値が直接計算できます。 方法2) ご利用のエクセルのバージョンが明記されていません。ご相談投稿では,ご利用のソフト名は元よりソフトのバージョンまでキチンと明記することを覚えてください。 2行目に「入荷数」や「売上」の記述があり,3行目に数字が並んでいるとして Excel2007以降を使い =AVERAGEIF(B$2:M$2,"売上",B3:M3) と計算します。 売り上げ列で「何も入っていない空っぽセル」もしくは「文字列(""を含む)が記入や計算されているセル」は,自動で計算から除外されます。 方法3) 2行目に「入荷数」や「売上」の記述があり,3行目に数字が並んでいるとして 全バージョン共通: =AVERAGE(IF((B$2:M$2="売上")*(B3:M3<>""),B3:M3,"")) と記入し,必ずコントロールキーとシフトキーを押しながらEnterで入力します。 必ず一度まっさらのエクセルに練習用として,ご自分でも一連の問答でアナタが説明したようにデータをイチから作成して,確かに計算できることを確認してから改めて本番で試します。

yukayukawa
質問者

お礼

回答ありがとうございました! バージョン等書き忘れすみませんでした…(--; 以後気を付けます! =AVERAGEIF(B$2:M$2,"売上",B3:M3) も使えそうですね…できるだけ関数が単純なほうがいいので、 ありがたいです! No.5の方の式と合わせて使用してみたいと思います。 ありがとうございました!

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.3

A店の4つの数字がA店の「4つの数字」がB2:E2に記入してあったとすると 4つの数字の平均は =AVERAGE(B2:E2) と計算します。 B店の「3つの数字と1つの『空白セル』」がB3:E3にあったとすると =AVERAGE(B3:E3) で「3つの数字の平均値」が計算されます。 B店の「3つの数字と1つの『店休』など文字で記入されたセル」がB3:E3にあったとすると =AVERAGE(B3:E3) で「3つの数字の平均値」が計算されます。 「文字で記入されたセル」には,数式で""が計算されているセルもこれに含まれます。 B店に4つの「数字(ゼロを含む)」が記入されていて,しかもそのゼロが店が開いていて売り上げゼロだったのか,休みでゼロだったのかの「ゼロの識別」が可能な状況であれば,その具体的な表の様子に応じて関数を作成することもできます。

yukayukawa
質問者

お礼

回答ありがとうございました!

yukayukawa
質問者

補足

すみません。 わかりやすくと思って表を略しすぎました…。 実際の表では、売上の間に、入荷数と返却数がはいっているため、 B3:E3とすると、その入荷数等の数値まで読み取ってしまうので、 今は、売上のセルを一つ一つピックアップして、その日数(割る数)を数えて平均をだしています。 3月6日        3月7日 入荷数|返却数|売上|入荷数|返却数|売上   3|  2|100|  4|  1|300         ↑ピックアップ     ↑ピックアップ 2日分なので、 (6日売上100+7日売上300)÷2 のような感じです。 なので、 売上列の数値が入力されているセルだけカウントできれば…と思っています。 つ、伝わるでしょうか? よろしくお願いします。

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

ご質問の意味がよく分からない。 平均を求めるのなら普通にAVERAGE関数で良いのではないのでしょうか。 数値のセルを計数ならCOUNT関数は駄目なんでしょうか。

yukayukawa
質問者

お礼

回答ありがとうございました!

yukayukawa
質問者

補足

現物をお見せできないので、 文字で説明するしかないのですが… リスト事態が実は、質問例のような単純なものではなく、 売上の間に、入荷数や返却数などがあります。 なので、日付が増えるたびに列を追加していくので、 そのたびに、=(A1+B1+C1)と拾っていって、 そのあと日付で割るといった感じです。 =(A1+B1+C1)/3       ↑ 1つ1つの店舗毎に売上のある日を数えて入れていく方法しか今はなく… でもこの方法だと、手間ばかりかかるので、 関数でどうにかならないのかなと…。 『売上の入力があるセル』の数を カウントできれば、それで割れるのでは?!と 思ったのですが、どうでしょう?

  • chonami
  • ベストアンサー率43% (448/1036)
回答No.1

う~ん、 =SUM(売上範囲)/COUNT(売上範囲) こういうことかな?

yukayukawa
質問者

お礼

回答ありがとうございました!

yukayukawa
質問者

補足

現物をお見せできないので、 文字で説明するしかないのですが… リスト事態が実は、質問例のような単純なものではなく、 売上の間に、入荷数や返却数などがあります。 なので、日付が増えるたびに列を追加していくので、 そのたびに、=(A1+B1+C1)と拾っていって、 そのあと日付で割るといった感じです。 =(A1+B1+C1)/3       ↑ 1つ1つの店舗毎に売上のある日を数えて入れていく方法しか今はなく… でもこの方法だと、手間ばかりかかるので、 関数でどうにかならないのかなと…。 『売上の入力があるセル』の数を カウントできれば、それで割れるのでは?!と 思ったのですが、どうでしょう?

関連するQ&A