• ベストアンサー

このようなエクセルの関数の組み合わせはありますか

エクセルの関数についての質問です。 たとえば、A列とB列にタテに10個ずつのデータ(A1:B10)があって、 (1)A列とB列の同じ行のデータの小さいほうを選んだあと、 (2)選んだ10個のデータを合計したい のですが、そのような関数の組み合わせを作る(一つのセルに一気に表示する)としたら、どのようなものになるのでしょうか。MIN関数と、SUM関数を組み合わせればいいような気がするのですが、うまくいきません。 ご存知の方ならすぐにわかるようなことでしょうが、どうもわかりません。どなたか教えていただけないでしょうか。

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

  • ベストアンサー
  • keirika
  • ベストアンサー率42% (279/658)
回答No.2

=SUMPRODUCT((A1:A10)*(A1:A10<B1:B10)+(B1:B10)*(A1:A10>B1:B10)) でどうでしょうか。

siiwan
質問者

お礼

ご回答どうもありがとうございます。 ただこの式では、sige1701さんのおっしゃるとおり、横のセルの値が等しいときには出てきた値が違うような気がします。

siiwan
質問者

補足

すみません。単純に考えておりました。 sige1701さんのご指摘どおり、「<」の記号を「<=」で置き換えれば、この方法がベストのような気がします。とてもきれいな式ですね。 どうもありとうございました。

その他の回答 (3)

  • neconama
  • ベストアンサー率26% (146/541)
回答No.4

C列とかに最小を求める計算式を置き、別のセルでC列の合計を計算する、そしてC列を非表示にする。

  • sige1701
  • ベストアンサー率28% (74/260)
回答No.3

お遊びで回答します =SUMPRODUCT(A1:B10*((A1:A10>B1:B10)+1=COLUMN(A1:B10))) No2 さんの回答の 大小比較条件部分のどちらかに「=」を 付けないと、同じ値の場合に困りませんか?

siiwan
質問者

お礼

ご回答どうもありがとうございます。 私の質問の出し方が悪かったのですが、実は、扱っているデータの列が隣り合わない場合(たとえばA列とC列)にも適用したいと考えております。この式で、「A1:B10」の部分を、「A1:A10,C1:C10」のように書き換えてみたのですが、「この関数に対して、多すぎる引数が入力されています」という表示がされてしまいます。もし、wisemac21さんのご回答にある「Ctrl + Shift + Enterで確定する」という操作を経由しない方法があれば、それが最もいいような気がします。しかし、それは私のような分際では、わがままということになるのでしょうか。 とにかく、迅速なご回答、どうもありがとうございました。

  • wisemac21
  • ベストアンサー率39% (171/429)
回答No.1

=SUM(IF(A1:A10<B1:B10,A1:A10,B1:B10)) Ctrl + Shift + Enter で確定する

siiwan
質問者

お礼

なんですかこのやり方は!! ものすごい技が存在しますね。びっくりしました。美しいです。 ただ、ちょっと試していて気づいたのですが、データ範囲を改めて指定するときに、「Ctrl + Shift + Enterで確定」というのを忘れないようにしないといけないですね。私は、忘れないようにテキストボックスでメモっておきました。 迅速なご回答どうもありがとうございました。

関連するQ&A

  • Excelの関数について

    Excelの関数について 私のExcelは2003です。 表を作っていて A列とB列に数値を入れてその合計をC列に自動的に出すようにするのは C列に「=SUM(A3,B3)」と入れますよね? 1日数回のデータを取り A列とB列に数値を入力し 1ヶ月ほどデータを取り続けるので その分C列に入れた関数を下へセルの右下にポインタを合わせて十字の記号を出して 下へ関数を入れたのですが その場合C列には0と表示されますよね? これは防げないものなのですか? 後、そのC列に表示された合計値を 次の行のA列に表示させたいのですが そういう関数はありますか? C列の合計値に次の数を足して、合計値をどんどん増やしていくので 例えばC1の値をそのままA2に表示。 C2の値をそのままA3に表示 C5の値をそのままA6に表示としたいのですが 関数があったら教えてほしいです。

  • Excelの関数について

    Excelの関数について 今表を作っていて 1日数回データを取って それを1ヶ月ぐらい続ける予定で その結果をExcelの表に入力したいと思っています。 A列に現在値 B列に増加分 C列にA+Bの値を入れたいと思っています。 なので、C列には、C1には=SUM(A1,B1)として セルの右下にポインタを合わせて十字で下まで引っ張って関数をコピーしています。 で、そうするとC列に0が表示されてしまい それはなんとか、ツール→オプション→表示→ゼロ値のチェックを外して解決したのですが C列の合計値は次の行のAのセルに表示したくて 例えば C3の数値はそのままA4に C7の数値はそのままA8にといった感じで で、A2のセルに=C1とかA5のセルに=C4とかしたのですが いちいち関数を埋め込むのは面倒くさいので 下のほうまで関数をコピーしたところ 関数が埋め込まれているので A列とB列にしたの方まで同じ数字が表示されています。 これって消すことはできないのでしょうか? 現在は 最初のA1セルだけに数値を入れたのですが関数を埋め込んだことにより A列とB列すべてにA1セルの数値が表示されています。 まだデータを取っていないのでB列は空白です。 ただ、できれば、下の方に数値が表示されないようにしたいんです。 言葉で説明すると A列とB列に数値が入力されない限り、C列の合計値は表示されない設定にできれば 私の言っているような状況になると思うのですが、そういう事はできないのでしょうか… 教えてください。

  • このようなデータ処理はエクセルの関数組み合わせやオートフィルなどで可能でしょうか

    エクセルでのデータ処理に関する質問です。 ・処理する元データ ヨコ10列(A列からJ列まで)、タテ20個の数値データ ・行いたい処理 (1)それぞれの二つの列(たとえばA列とB列)の同じ行の数値データをそれぞれ三乗して足す。そのあと、足したものを合計する。 (2)すべての組み合わせについて計算する。(つまり、A列-A列、A列-B列、A列-C列、……、B列-A列、B列-B列、B列-C列、……、I列-J列、J列-J列の組み合わせ) (3)これら算出した数値を横一列(1×100)にする。 最終目標は(3)です。(1)は単純なオートフィルでなんとかなるのですが、(2)は、合計する範囲を毎回指定しなおさなくてはいけないために大変面倒です。 このような形式のデータがたくさんあるために、できるだけ手間を省きたいのですが、どうしたらいいかわかりません。オートフィルをうまく組み合わせればできるような気もしますが、どうもできません。10個計算したら次に移ってくれるようなオートフィルがあればいいのに、とか、不可能なことばかり考えてしまいます。うまくやれば、横向きに100個のセルをオートフィルで、つまんで引っ張るだけでできるような気もしますが、できません。 ご存知の方にとっては簡単なことかもしれませんが、うまくいかず、ムズムズしております。どうか、どなたかお教えいただけないでしょうか。

  • エクセルの同じ行の違う列を返す関数

    エクセルの同じ行の違う列を返す関数 エクセルの関数について質問があります。 例えば、以下のようなデータがあったとして、 左からA列、B列、上から1行、2行・・・5行目に 0.1  32 0.2  9 0.3  15 0.4  2 0.5  21 といったデータがあるときに、例えば MIN(B1:B5)はB4の5とわかった場合に、 この時のA4の数値を知りたいのです。 データが膨大だとその数値をさがすだけで大変です。 よろしくお願いします。

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

    初めて投稿します。よろしくお願いします。 エクセルの関数で苦戦しています。初歩的な関数しかわからないもので。。詳しい方、教えていただけますでしょうか。よろしくお願いします。うまく説明が伝わりづらいと思うのですが、、、 =SUM($A$1*B1,$A$2*B2,$A$3*B3・・・・)という式を入れました。(それぞれの掛算の合計を求めたい)括弧内の掛算は、60個ぐらいあって、引数が30個までしか指定できないので、エラーになってしまいます。そして、すごい長い式になっていて、指定するのにも一苦労です。 これをまとめる関数があるのでしょうか? 行  A B C D E F ・・・ 列 1 2 3 4 5 ・ ・ ・ 合計

  • エクセル関数について

    エクセル関数について質問です。 簡単に説明すると特定のセルに特定の数値を入力するとその行の別のセルの数値を別のセルに表示させたい。 たとえば     A      B       C 1  100            2  200      1      100 3  300      1      300 4  400 5  合計            400 上記の様になっていた場合 A列は定数で固定です。B列のセルに1と入力(1でなくてもよい)した行のA列の数値を Cに表示したいのですが、 C列にどの様な関数を使ったらいいんでしょうか?宜しくお願い致します。

  • 条件付のsum,max,min関数の書き方

    sum関数なので、合計欄のセルに ex.=SUM(B1:B6)などと書くときに、 a列が"1"の場合のみ合計欄のセルに加算したい場合は どうやって書けばいいでしょうか? __ A B 1 1 100 2 0 200 3 1 300 4 0 400 5 1 500 6 0 600 合計欄の値=900にしたいのですが.... もしも書き方があるのであれば、 MAX,MINの場合も同じでしょうか?

  • Excelの組み合わせをカウントしたいです。

    こんにちは。 Excelの組み合わせをカウントしようと試行錯誤したのですが 未だに完成出来ないので質問させて頂きます。 A列に1から10までの数字がランダムで500行ほどあり、 A列の中で1と言う数字があった場合、 その下のセルに2があればその組み合わせを1とカウントし、 B列に合計を表示したいのですが、これは可能でしょうか? どうかご教授下さいますよう、宜しくお願い致します。

  • 合計値が同じ組み合わせ

    下記の様な事ってEXCELの関数を使って、出力は可能でしょうか? 可能でしたら是非とも教えてください。 例)B列の1行目から10行目にそれぞれ数字が入力されていて、そこから4つのセルを抜き出し、合計値が30となる組み合せ全てを抽出する。

  • エクセル2003 関数 IFとVlookupの組み合わせについて

    エクセル2003 関数 IFとVlookupの組み合わせについて IF関数とvlookuo関数を組み合わせて関数を組もうとしています。 vlookupしたい元データが18万あるのでシートを(1)~(3)に分けています。 やりたいことは、 シート「(1)1~60,000」     A列:ID B列:社名 シート「(2)60,001~120,000」 A列:ID B列:社名 シート「(3)120,001~180,000」 A列:ID B列:社名 シート「集計」 このシートに関数の結果を表示したいです シート「集計」のH9のセルにIDを入れたらI9のセルに社名が自動表示される。且つH9のセルが空欄ならI9のセルも空欄になる。※入るIDはシート(1)~(3)のどこかにあります 関数教えて下さい。よろしくお願いします。

専門家に質問してみよう