• ベストアンサー

Excelの関数でこんな事出来ますか?

見ていただきありがとうございます。 関数式の事で教えていただきたいのですが・・・ パワーリフティングの集計をやっています。 今までは手書きでと電卓で頑張っていたのですが、 せっかくパソコンがあるのだからExcelで何とか ならないかな~?と、思い、ある程度までは挑戦 してみたのですが、途中で行き詰まってしまいました。 選手(10人として)の体重(少数点第1位まで)をA1~A10まで書き込み、成功した合計重量をB1~B10まで書き込みます。 続いて、C1~C10に成功した合計重量が多い順に1位~10位と表示されるようにします。 この時にB1~B10にどう重量が発生する場合もあります。 この場合基本的にAのセルに入力した体重が少ない人が上位になるようにCのセルに表示したいのですが・・・ 説明が下手で申し訳ありませんけど、よろしくお願いします! 尚、OSはwindowsXPでExcel2002を使用しています

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

  • ベストアンサー
  • zinchan
  • ベストアンサー率49% (97/197)
回答No.5

 もうすでに#2で回答が述べられているようですので、回答そのものではありませんが、集計表の設計について述べさせてもらいたく思います。すでにそうしてるのかもしれませんが、Excelで入力するのでしたら、どうせなら成功した合計重量をB列に入力するのではなく、下記のような集計表を設計したらいかがでしょう。  A列に選手氏名(または選手番号)、B列に選手体重、C列~E列にリフティング種目「a」、F列~H列にリフティング種目「b」、I列~K列にリフティング種目「c」の各3回の記録をそれぞれ入力、L列には、例えば選手が3行目から入力されていれば、=MAX(C3:E3)、M列には=MAX(F3:H3)、N列には=MAX(I3:K3)と関数式を入力し、各種目の、3回のうちの最大重量を表示するようにする。O列に3種目合計重量として=SUM(L3:N3)とする。P列に、=(O3*10)+(10-B3)として、体重重み付け重量とする。Q列に順位として=RANK(P3,P:P)と入れて、L列~Q列までの計算式を、人数分(最終データ行)までコピーすれば、合計重量の多い順、ただし同重量の場合は体重の軽い人を優先とする順番が表示されるはずです。  次の大会で人数の加減があった場合、L列~Q列までの計算式が入った行を人数に合わせれば、正しい順位がその都度表示されます。  なお、P列は、重み付けをしていますが、わり算だと、次の大会で人数の減があった場合、順位の列にエラーが表示されてしまうので、わり算のない式の方がいいと考えます。

mariko_f
質問者

お礼

早速ありがとうございます。 詳しく説明していただき助かります。 本当にありがとうございました!

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (5)

回答No.6

> (No.3の方は、A列とB列が逆ですが。) あれま、本当だ。Aが体重でBが成績でしたね。逆数にするのは体重の 方です。成績をひっくり返してはいけません。 maruru01さんご指摘感謝。

全文を見る
すると、全ての回答が全文表示されます。
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.4

こんにちは。maruru01です。 C1に、 =SUMPRODUCT(($B$1:$B$10+1/$A$1:$A$10>B1+1/A1)*1)+1 と入力して、下の行へコピーします。 なお、選手が10人でない場合は、適宜範囲を変更して下さい。 ちなみに、「B1+1/A1」の「+1/A1」の部分は重み付けという手法です。 順位を付ける際の第2キーを微小値で、第1キーに足し引きするという方法です。 No.2やNo.3の方も同様に重み付けをしています。 (No.3の方は、A列とB列が逆ですが。)

mariko_f
質問者

お礼

さっそくありがとうございます。 これも参考になりました! また何かありましたらよろしくお願いします。

全文を見る
すると、全ての回答が全文表示されます。
回答No.3

1列よけいに使う方法なんですが、合計重量に体重の逆数を足したも のを作ってやって、それでrank関数を使うのが簡単だと思います。具 体的には、C列に =A1+(1/B1) として、D列で =rank(C1,C:C) とするだけです。仕上げにC列の幅を0にしておくのがすっきりしてい いですね。体重が1kg未満の人がいたり合計重量を1kg未満の桁で争う ようなことがない限り、破綻しないはずです。

mariko_f
質問者

お礼

早速ありがとうございます。 なるほど・・・色々なやり方があるものですね。 皆さん詳しくてすごいです。

全文を見る
すると、全ての回答が全文表示されます。
  • Gin_F
  • ベストアンサー率63% (286/453)
回答No.2

(B1 * 1000) + (1000 - A1) のような式を 作業用の列に入れてから、各行(10人分)コピーし、 その列を元に、RANK 関数を使って順位をつけてやればいいと思います。

mariko_f
質問者

お礼

早速ありがとうございました! 参考になりました。

全文を見る
すると、全ての回答が全文表示されます。
  • hinebot
  • ベストアンサー率37% (1123/2963)
回答No.1

ご質問のやりたいことのどこまでができて、どこで行き詰まっているのでしょうか?もう少し、具体的に示してください。

mariko_f
質問者

補足

すみませんでした。 私が出来たのは、パワーリフティングの場合3種目ありまして、各種目共に3回行われます。 3回のうちの一番重い重量がその種目の重量として記録されます。 各3種目の一番重い重量の合計がBのセルに表示されます。 結局のところ、各種目の一番重い重量を表示させるのと各種目の合計程度しか出来てません。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセル関数で、ご教示下さい

    例として、セルA1~A10に、1.2.3.・・・・10と番号を入れて       セルB1~B10には、商品の在庫数が入力されているとします。 この時、セルC1に集計の開始番号 セルC2に集計の終了番号を入力すれば、      D1に開始番号から終了番号までのB列の合計を表示させたいのですが、      このような集計ができるD1に入れる関数はあるでしょうか。 例えば、B列の3行目から6行目までの合計をD1に表示させたい場合に      C1にA列番号の3を入力、C2には6を入力すれば、D1にB3からB6の合計を      表示してくれる、といった関数です。      開始番号、終了番号は、何番~何番までと、その都度変わります。 どなたか、よろしく、お願いいたします。         

  • 関数を教えてください

    B1~F1のセルに入力した数字の合計をA1のセルに集計するとします。 Cの列を表示しないとすると、もちろんA1のセルには、 C1に入力してある数字も合計されてしまいますが、 表示しないときはA1の合計に含めない、表示する時はA1の合計に含める という風にしたいのですが、その場合A1の関数を教えて下さい。

  • Excel 関数について

    Excelの関数で例えば、セルのC1にA1とB1の合計を表示させたければ、C1のセルに「=A1+B1」と入力すれば表示できますよね。 そこで質問なのですが、C1のセルに「=A1+B1」と入力したとして、A1とB1に数値を入力していない場合にC1には0と表示されます。その0を表示させたくない場合にはどのような作業をすればよいのでしょうか? 教えてください!(^^)!お願いします!!

  • エクセルの関数でワイルドカードを使いたいのですが・・・

    A列3行目から100行目までのセルで文字列○を含むものの合計は =COUNTIF(A3:A100,"*○*")で求めることが出来ますね。 同様にB列にも文字列○を含むセルをカウントする場合、 =COUNTIF(B3:B100,"*○*")で求められます。 では同じ行で、A列B列共に○を含むものを集計しようとして、C列に =IF(AND(A3="*○*",B3="*○*"),TRUE)とし、TRUEを合計しようとしたところすべてFALSEになってしまいました。 なぜワイルドカード(*)が使える場合と使えない場合があるのでしょうか? またどうやれば同じ行でA列B列共に○を含むものを集計できるのでしょうか?

  • エクセルで各ファイルのセルにリンクする関数

    お手数ですが教えてください。 それぞれの伝票ファイルの合計金額を集計ファイルのセルにリンクして表示させて、集計金額の合計を求めたいのですが、上手くいきません。何か良い関数か?方法ないでしょうか? 例えば、 伝票ファイル1~10のSeet1のA1セルを、集計ファイルのSeet1のB1からB10セルへ表示させて、合計金額を求める。

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

    Windows Xp エクセル2003を使用しています。 業務で使用している集計表ファイルがあり、別ファイルにデータを反映させたいのです。 集計表のセルA1を検索値としセルB1とセルB2の値を返す関数はないでしょうか? 集計表のつくりは約1000行あり、セルA3を検索値としてセルB3の値を返す行もあります。 セルA5を検索値とし、B5、B6、B7、C5,C6の値を返す行など様々です。 こういったデータがランダムで表になっています。一つの検索値に対して、検索値の水平方向はvlookup関数で表示出来たのですが、 一つの検索値で2つの値を返す関数が分からず、困っています。 1行下や2行下を検索する関数も参考にしたのですが、集計表のつくりがランダムの為、検索してほしくないものまで表示されてしまうなど、ウマクできませんでした。 宜しくお願いします。

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

     セルA  セルB  セルC  セルD   10     20    ○   = 30    5     15    ×   = 空白 上記のセルCが○の場合、セルDにA+Bの合計が出るような計算式はありますでしょうか? またセルCが×の場合は、ブランクになるようにしたいです。 どうぞ宜しくお願いいたします。

  • Excel関数(SUMIFの応用?)

    いつも参考にさせて頂いています。 現在、ある集計表をつくっていますが集計用の関数がわからなくて困っています。 <表の内容> ・セルA1:「ランク」 ・セルA2~A10:「A」or「B」or「C」を入力している ・セルB1:「要望」 ・セルB2~B10:「あり」or「なし」or「不明」を入力している ・セルC1:「金額」 ・セルC2~C10:各金額を入力している <集計> ・セルC11に「ランクが"A"」かつ「要望が"あり"」の金額合計を表示 ・セルC11に「ランクが"C"」かつ「要望が"なし"」の金額合計を表示 ・・・等々 この集計にはどのような関数を使えばよいでしょうか? 表を利用する者がDatabase関数は理解していないので、Database関数以外で使えるものがありましたら、教えてください。 今はD列に「=A2 & B2」のような式を入れて「=SUMIF(D2:D10,"Aあり",C2:C10」として集計していますが、もう少しスマートな方法があれば、教えていただきたいと思います。 どうぞよろしくお願いします。

  • エクセル関数 引く

    こんばんは。 エクセルの関数の事です。 SUMは指定した範囲を全て足す事ですよね。 2つ別々の合計を出して引くやり方が分からないのですが 例えばSUMを使ってセルの A1~A10までの合計をA11に表示 B1~B10までの合計をB11に表示 これの A11からB11を引いた数値をC11に出したい場合、 何の関数を使ったらいいでしょうか? 例えが分かりにくいかもしれませんが A1~A10やB1~B10の数値を変更したら 自動でC11にA11-B11で反映してくれる関数です。 説明が下手で分かりにくいと思いますが ご存知の方教えてください。

  • Excel関数:SUBTOTALとSUMIFを組み合わせる?

    下記のような場合の集計ができる関数を教えて下さい。 SUBTOTALとSUMIFを組み合わせようと思ったのですが、うまくいきませんでした。 よろしくお願いします。 <表の内容> ・セルA1:「ランク」 ・セルA2~A50:「A」or「B」or「C」を入力している ・セルB1:「金額」 ・セルB2~B50:各金額を入力している <集計方法> ・セルB51に「ランクが"A"」の金額合計を表示したい ・ただしオートフィルターを使って他の条件で抽出もおこなっているのでSUBTOTAL関数のように、表示されている行の値のみを合計したい

Scansnap Homeの容量
このQ&Aのポイント
  • Scansnap Homeの容量について教えてください。
  • iX1300を使用し、領収書や請求書、契約書などをスキャンしています。pdfファイルはどれくらい保存できますか?
  • 年間1000件のデータを入力すると10年で10000件になりますが、Scansnap Homeは無限にデータを入力できるのでしょうか?
回答を見る

専門家に質問してみよう