VBAを使用せずに体力測定のExcelで集計する方法

このQ&Aのポイント
  • Excel2013でVBAが使えない場合、体力測定の集計シートを作成する方法をご紹介します。高齢者の体力測定結果をまとめるために、名前、年齢、性別、各種テスト種目の結果の数値を入力してください。例えば、○歳の男性の場合、開眼片足立ちが△秒できるとA判定などの結果が出力されるようになります。LOOKUP関数はテストの集計や成績表作成に便利ですが、反映方法についても説明します。
  • VBAが利用できない環境でも、Excelを使用して体力測定の集計シートを作成することができます。名前、年齢、性別、各テストの結果を入力すると、テスト結果の判定が自動で行われます。例えば、○歳の男性の場合、開眼片足立ちが△秒できるとA判定となります。LOOKUP関数はテストの集計や成績表作成に利用される便利な関数であり、この記事ではその使い方も解説します。
  • Excel2013ではVBAが使用できないため、体力測定の集計シートを作成する際には別の方法を使用する必要があります。名前、年齢、性別、各テスト種目の結果を入力すると、テストの判定が表示されます。LOOKUP関数はテストの集計や成績表作成に使用される関数であり、この記事ではその使い方も詳しく解説します。VBAが使えない場合でも、Excelを利用して簡単に体力測定の集計シートを作成することができます。
回答を見る
  • ベストアンサー

VBAが使えない場合の体力測定のExcelでの集計

体力測定の集計シートについての質問です。 たくさんテンプレートが配布されているのですがうちのパソコン環境(Excel2013)ではなぜかVBAが機能せず(開発タブも解禁にしたのですが、VBAという表示そのものがなく、XMLと変更という表示しかでてきません…)、せっかくのテンプレートが使えず困っています。 わたしのパソコンでVBAが使えるようになる方法か、VBAなしでどの関数を使用すれば集計シートが作れるかのご指導をいただきたく思います。 作りたいものは高齢者の体力測定結果のまとめです。 名前、年齢、性別、各種テスト種目の結果の数値を入力すると、テスト種目の判定、たとえば○歳の男性の場合、開眼片足立ちが△秒できるとA判定、というものが出てくるようにしたいと考えています。 LOOKUP関数というものがテストの集計や成績表をつくるのによく使用されているものであるということはわかったのですが、反映の仕方がいまひとつわかりません。 うすうすお察しかと思いますが、田舎の老人クラブに所属しております。老人クラブの経理表くらいなら作ることができます。パソコンを使える会員がほかにいません。 よろしくおねがいいたします。

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

  • ベストアンサー
  • chayamati
  • ベストアンサー率41% (254/607)
回答No.7

回答No.5、No.6です。 テーブルを定義すると自動でテーブルNo.と命名されますがこれを変更することが出来ます。 1.テーブルをクリック→テーブルツールタッグ→左端のテーブル名欄で変更 これで定義したのが 添付の(A1:A15)体力評価表 (N1:S11)椅子座立評価基準男 (N13:S23)椅子座立評価基準女 この3つの組み合わせで、次のように定義します 1.評価表の赤字のセルは関数、他は入力項目数です。 1-1.セルA1:測定日を入力します。 1-2.氏名、性別、生年月日 事前に入力しておきます。 1-3.年齢:測定日現在の年齢   =DATEDIF([@生年月日],$A$1,"Y") 1-4.年齢帯:評価基準では、60歳まで10歳刻み、   これ以後80歳まで5歳刻み80を超える80歳  CEILING.MATH()関数を使います  =IF([@年齢]>=75,80,IF([@年齢]<65,CEILING.MATH([@年齢],10,0),CEILING.MATH([@年齢],5,0))) 2.H列~L列評価表の年齢帯と評価基準表の年齢帯キーにして、同じ行にします。  性別により参照するテーブルが異なります。 H3=IF([@性別]="男",VLOOKUP([@年齢帯],椅子座立評価基準男,2),VLOOKUP([@年齢帯],椅子座立評価基準女,2)) I3=IF([@性別]="男",VLOOKUP([@年齢帯],椅子座立評価基準男,3),VLOOKUP([@年齢帯],椅子座立評価基準女,3)) J3=IF([@性別]="男",VLOOKUP([@年齢帯],椅子座立評価基準男,4),VLOOKUP([@年齢帯],椅子座立評価基準女,4)) K3=IF([@性別]="男",VLOOKUP([@年齢帯],椅子座立評価基準男,5),VLOOKUP([@年齢帯],椅子座立評価基準女,5)) L3=IF([@性別]="男",VLOOKUP([@年齢帯],椅子座立評価基準男,6),VLOOKUP([@年齢帯],椅子座立評価基準女,6)) 3.G列評価  if関数の入れ子でベタですが  =IF([@測定値]>=[@(5)],テーブル1[[#見出し],[(5)]],IF([@測定値]>=[@(4)],テーブル1[[#見出し],[(4)]],IF([@測定値]>=[@(3)],テーブル1[[#見出し],[(3)]],IF([@測定値]>=[@(2)],テーブル1[[#見出し],[(2)]],テーブル1[[#見出し],[(1)]]))))

fransis
質問者

お礼

あなたは神様か何かでしょうか… 何から何まで本当にありがとうございます!!! こちらを基準に、他の項目については自力で何とかしてみたいと思います。 本当にありがとうございました!!

その他の回答 (6)

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.6

回答No.5です。その後何か進展ありましたか VBAなしの関数式だけのモデルが出来ました No.5は無かった事にして下さい VBAなしの関数式だけのモデルが出来ました 添付のような、評価表(A列~L列)と評価基準表(N列~S列)です。 何れの表もテーブルとしての書式設定にしています。 1.評価表の赤字のセルは関数、他は入力項目数です。 1-1.セルA1:測定日を入力します。 1-2.氏名、性別、生年月日 事前に入力しておきます。 1-3.年齢:測定日現在の年齢   =DATEDIF([@生年月日],$A$1,"Y") 1-4.年齢帯:評価基準では、60歳まで10歳刻み、   これ以後80歳まで5歳刻み80を超える80歳  CEILING.MATH()関数を使います  =IF([@年齢]>=75,80,IF([@年齢]<65,CEILING.MATH([@年齢],10,0),CEILING.MATH([@年齢],5,0))) 2.H列~L列評価表の年齢帯と評価基準表の年齢帯キーにして、同じ行にします。 H3=VLOOKUP([@年齢帯],テーブル2,2) I3=VLOOKUP([@年齢帯],テーブル2,3) J3=VLOOKUP([@年齢帯],テーブル2,4) K3=VLOOKUP([@年齢帯],テーブル2,5) L3=VLOOKUP([@年齢帯],テーブル2,6) 3.G列評価  if関数の入れ子でベタですが  =IF([@測定値]>=[@(5)],テーブル1[[#見出し],[(5)]],IF([@測定値]>=[@(4)],テーブル1[[#見出し],[(4)]],IF([@測定値]>=[@(3)],テーブル1[[#見出し],[(3)]],IF([@測定値]>=[@(2)],テーブル1[[#見出し],[(2)]],テーブル1[[#見出し],[(1)]])))) 追伸 今回男性の評価基準ですが、男性の評価基準表の下行に女性の評価基準を追記すると男女混在の評価表が可能です。 テーブル 「テーブルとしての書式設定」今回初体験です、まだ素人ですが一つのセルに式を記述するとその列全てに反映されるようで、式に相対アドレス、絶対アドレスを気にする必要がないようです

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.5

今晩は 未完成ですが >VBAなしでどの関数を使用すれば集計シートが作れるかのご指導をいただきたく思います。 ★VBAは必要ありません >作りたいものは高齢者の体力測定結果のまとめです。 ★http://www.jhei.net/exer/measurement/  を元に考えてみました  評価基準は年齢、性別により定まる  評価は5段階に分類される(1.優れている、2.やや優れている、3.ふつう4.やや劣っている5.劣っている >名前、年齢、性別、各種テスト種目の結果の数値を入力すると、テスト種目の判定、たとえば○歳の男性の場合、開眼片足立ちが△秒できるとA判定、というものが出てくるようにしたいと考えています。 LOOKUP関数というものがテストの集計や成績表をつくるのによく使用されているものであるということはわかったのですが、反映の仕方がいまひとつわかりません。 ★お察しの通りLOOKUP関数がキーポイントですが  LOOKUP関数は情報が?~?には対応していません  そこで帯にする関数としてCEILING.MATH関数を利用します  準備は  1.利用者様の情報テーブル(氏名、性別、誕生年月日)  2.評価基準テーブル(性別、年齢別、種目毎)  3.測定履歴テーブル(測定日、利用者名、測定値)   これに測定日の年齢、年齢帯、測定値帯を関数で求めます   年齢=DATEDIF(誕生年月日,測定日,"y")   if 年齢<60,年齢帯=CEILING.MATH(年齢,10),年齢帯=CEILING.MATH(年齢,5) 肝心の測定値を評価表に対応させる方法が想い付きません

fransis
質問者

お礼

こんばんは。ご回答ありがとうございました。 また見たことが無い関数が出てきてびっくりしました。 IF関数で色々やっていたところだったので、どうしたものかと頭を悩ませておりましたが、最終的にはこの後も色々ご検討いただきまして、ほんとうにありがとうございました。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

>VBAが使えない場合 質問者のパソコンにおいて、VBAが使えるようになっても、勉強してVBAプログラムが組めるようにならないと、何にもならないのですが、まあこの点を解決するか納得しておくのも必要でしょう。 Excelがインストール済みとして http://rkprog.hatenablog.jp/entry/2015/10/27/150616 などをやってみてください。 Googleで「vbaを使う」などで照会すれば、たくさん記事が出ます。上記はその中の一例です。 >わたしのパソコンでVBAが使えるようになる方法 についてのことです。この記事に沿って、操作をやってみて、どこで記事の記述通りに進まなくなりますか? ーーー 次に、関数での方法を質問するなら、10行ぐらい以内でシートのサンプルデータを質問に挙げて、再質問すべきでは? >集計シートが作れるか、と>名前、年齢、性・・・とA判定、というものが出てくるようにしたい、とがバラバラな視点なのだが正確に記述してください。 -- VBAのプログラムを思い通りに組めるようになるのは、プログラムの未経験者は、ずいぶん時間がかかるとおもう。私も後期高齢者だが、20年間ここの質問に答えて、そう思う。 だからVBAのことは、質問の話題に出さず、現状のデータの説明と、出したい結果に絞って、質問には記述したほうが良い。使う関数の種類(どの関数を使うか)なども回答者にまかせればよいのだ。 回答は、どうせ多くても、関数を利用した、2-3種類の回答しか出ないと思うから。 その関数を理解することに、力を注ぐしかないと思う。 >LOOKUP関数というもの・・ 回答者にまかせればよいのだ。当面は、それを勉強する・理解するに徹すること。 回答者は、LOOKUP関数がある、と言われても、そんなことは、既に知っていて、それを使うのが適当かどうか、各自が判断するから、ヒントにもならない。 何よりも、回答者は、回答のために、シートのデータのあり様が知りたいはず。それを質問の文章で、文章文字で、ちょこちょこ書かれても、回答の何の役にも立たない。 それと出したい結果を(文章で表現して)明確にすること。

fransis
質問者

お礼

ご回答ありがとうございました。 テンプレートに組み込まれているらしいVBAが使えないので困っていました。 リンクを拝見しまして順にやってみました。開発タブを出すところまではできました。 また、質問に関してのアドバイスもありがとうございます。 同世代であろうにパソコンの習熟度の違いをまざまざと感じ、己の怠慢を恥じ入るばかりです。 今回は親切なみなさんのおかげでなんとか解決のめどが立ちそうです。 次回、またお知恵をお借りしたいと思った時には、ご指摘があったとおりに明確に内容を説明してご助力を仰ぎたいと思います。ありがとうございました。

  • kkkkkm
  • ベストアンサー率65% (1601/2438)
回答No.3

とりあえずOfficeを修復してみましょう。 https://support.office.com/ja-jp/article/office-%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%92%E4%BF%AE%E5%BE%A9%E3%81%99%E3%82%8B-7821d4b6-7c1d-4205-aa0e-a6b40c5bb88b Vlookupの場合の単純な例ですが F列の秒以上できるとG列判定とした場合 各列1行目から判定用の基礎データを作成したとして F列 G列 0  F 10  E 20  D 30  C 40  B 50  A B1に開眼片足立ちのデータを入れた場合 判定を出したいセルに =VLOOKUP(B1,$F$1:$G$6,2,TRUE) このような感じです。 年齢性別が判定要素に入ると思いますのでこれに手を加えなければいけないとは思います。

fransis
質問者

お礼

ご回答ありがとうございました。 修復、試してみました。しかしファイルは起動しませんでした…。 Vlookupの例の提示もありがとうございました。 まだまだ勉強することが多そうです。精進します。

  • kon555
  • ベストアンサー率52% (1738/3330)
回答No.2

VBA=マクロはセキュリティの辺りもご確認下さい。 https://www.relief.jp/docs/excel-vba-macro-security.html それはそれとして、言われているような仕様であればif関数というもので実現できると思います。 if関数とは、一定の条件に当てはまるか当てはまらないかを判定して、「当てはまる場合はA、当てはまらない場合はBを表示する」などを行える関数です。 書き方についてはちょっとややっこしいのですが、解説しているサイトもいっぱいあるので検索してみてください。 https://udemy.benesse.co.jp/office-enhance/microsoft-office/excel-if.html

fransis
質問者

お礼

ご回答ありがとうございます。 セキュリティの項目も確認してみたのですが、やはり起動してくれませんでした。 そしてご提案戴いた関数について、調べてみました。 なんとなく作りかけていたところ、思わぬ模範解答をいただくことができました。 今度また自分でなにか作るときはこちらの関数を使ってみたいと思います。ありがとうございました。

  • unokwave
  • ベストアンサー率58% (966/1654)
回答No.1

altを押しながらf11を押すとvbeが起動します。

fransis
質問者

お礼

それが、「できません」という内容のポップアップが出てくるのです…。

関連するQ&A

  • エクセルで全年齢対象の体力テストの集計をします

    集計といっても平均とかを出すのではなく、結果をグラフにして評価を出し、全国平均と比較、コメントを載せて返却するのが目的です。 困っているのは全年齢と言うところです。下は小学生、上は70代で性別も両方います。どの程度分けて作るのがよいのでしょう。 体力テストなので、評価と比較する全国平均も年代と性別ごとに違うのです。 体力テストの集計について検索しても学校対象のものばかりで、男女別にシートを作る。としかなく、困っています。 前任者は人数分だけシートを作っていたようです……(これはこれで凄い) 私の考えとしては、返却するカードのテンプレをつくって、名前を入れると別シートの名簿兼測定値(ここに全国平均も)から参照してぽんっと出てくるようなのを考えています。 毎年、年に数度実施しているので初回が手間でも、少し数値をいじれば毎回使えるようなものを作りたいです。 書いてて、自分でも説明の仕方が悪いとは思います。なにかありましたら追記もします。 よろしくおねがいします。

  • エクセルで同じ様式のファイルを集計するには「VBA

    某会社の総務系の者です。 エクセルのsheet1に以下のような5行、4列の表を作り(課の名称もA1セルに入れてもらいます)、80個ほどの部署にそれを送り入力してもらい、それをこちらで1枚のシートに集計することになったのですが、困っています!どうかお力を貸してください。m(__)m ○○課            21年度   22年度   23年度   「あああ」の人数 「いいい」の人数 「ううう」の人数 「えええ」の人数 集計シートもこちらで作るので決められた様式はありませんが、集計したい項目としては、組織全体(80個ほどの部署)の21年度、22年度、23年度ごとの「あああ」「いいい」「ううう」「えええ」それぞれの合計人数です。 VBAを使うとするとどのように書けば良いでしょうか? ファイルを開くのも、課ごとにデータを取得するのも自動でできたらなと思っています。 なお、私は、各部署に送るファイルのsheet2にsheet1の表に入力してもらったデータを以下のような横長の2行に飛ばそうかと考えています。(素人意見なのでわかりませんが、VBAで処理をするにしてもsheet1から直接よりもそのほうが集計がしやすいうよいな気がするので。)      21年度     22年度      23年度     21年度     22年度   23年度・・○○課 あああの人数 あああの人数   あああの人数 いいいの人数 いいいの人数 いい・・ どうか、よろしくお願いいたします!      

  • エクセル2003の「串刺し集計」について教えてください。

    年度別の売上等の集計表を作っています。 月毎にシート名を「0604」、「0605」・・・とし、半期毎にも集計を かけたいと思っています。(0604~0609のシート間) それぞれのシートは同じ表で、B列に「曜日(月~日)」が D列には「客数」が入っています。 そこで「特定の曜日の客数」を半期毎の集計シート(0609の後)に 表示させようとして、下記のような関数を入れました。 =sum('0604:0609'!,sumif($c$2:$c$30,"月",d2:d30)) しかし、「入力された数式は正しくない」と表示されてしまい ヘルプを参照しましたが、一般的な入力時の注意だけでした。 SUMにはSUMIFを組み合わせられないのでしょうか? 参照するセルの値が変わっても、集計結果に反映される関数を 教えていただけませんでしょうか。

  • エクセル集計

    エクセルで質問です。 sheet1   列   A           B 行          (名称)       (判定) 1   あいうえお        A 2   あいうえお        C 3   かきくけこ        C  4   かきくけこ        B 5   かきくけこ        B という元データがあり、みてのとおり同じ名前のものが複数あり各々で判定が違います。 次に、別のシートには(※同じシートで列をAAとしてもよいが) sheet2   列  A       B    C    D 行                判定 1             A    B    C 2   あいうえお    1         1 3   かきくけこ         2    1 という具合に、A列には名前が複数あってもひとつとしその右側に判定の種別ごとに数を記入する。 という集計表を作成したいのですが、どなたか教えてください。 ちなみにマクロはできませんのであしからず・・・・

  • VBAで集計ファイルを作りたい

    今、VBAで一つの集計ファイルを作成しています。 集計ファイルは、Sheet1・Sheet2の二枚のシートで構成されています。 このファイルには、ある二つのファイルにデータを流し込むために、 Sheet1には二次元配列(表)にデータを入力し、Sheet2には二つのファイルのパスを指定する仕様になっています。 集計ファイルは、「集計」ボタンをクリックした際に二つのファイルにデータを流し込む仕様です。 この二つのファイルへのデータ更新は、一回で済ませたいと思っています。 ファイルを開いてデータ更新→ファイルを閉じる・・という処理を 二回繰り返して二つのファイルにデータ更新をかけたいと思っています。 ある程度までは、作成できたのですが今行き詰っています。 サンプル程度でよいので、お手本になるスクリプトのアドバイスを頂けたらと思います。 初心者ですので、質問がわかりづらかったらすみません。。。 お力添えをお願い致します。

  • エクセルシートのコピーとシート名の変更&集計表

    エクセルの集計に関して初心者です。1シートに同じ内容で各顧客のデータを同じフォームで入力しています。これを新しい顧客が出てくるたびにシートコピーしているのですが、VBAでボタンでコピーできるようにしたいです。 /Users/inouehirotaka/Desktop/スクリーンショット 0030-09-17 11.55.37.jpg さらにこれらの各シートの内容を集計表で一覧にしたいのですが、良い関数もしくはVBAでの転記方法をお教えください。 /Users/inouehirotaka/Desktop/スクリーンショット 0030-09-17 11.56.28.jpg 色々VBAで試してみたのですが、どうもうまくいきません。ご教授よろしくお願いいたします。

  • エクセル2007でマクロを使わずに集計する方法

    添付図のように全品調査表の判定結果から品名別に良・不良の件数を集計したいです。 まずは、使用する関数名または参考URLを教えてください。 それを勉強して、具体的に操作してわからないことは別件で質問したいと思います。 実際の集計条件は 全品個数=   約 1,000個 品名数=    約 300個 品名毎の個数= 不特定1~10 集計表の表示位置は、計算過程の作業領域が必要なら、別の位置またはシートでOK

  • エクセルで集計をしたいのです

    お世話になります。 Accessからエクスポートした表があります。 (集計元表) [商品名]|[支店名]|[日付]|[売上数]| 商品A|支店1|2011/08/01|6| 商品A|支店1|2011/08/05|2| 商品A|支店2|2011/08/01|3| 商品B|支店1|2011/08/01|9| 商品B|支店2|2011/08/01|1| … これを以下のように、商品毎に表にしたいのです。 (集計表:商品A) 商品A|8/1|8/2|8/3|8/4|8/5|合計| 支店1| 6 | 0 | 0 | 0 | 2 | 8 | 支店2| 3 | 0 | 0 | 0 | 0 | 3 | 合計 | 9 | 0 | 0 | 0 | 2 | 11 | (集計表:商品B) 商品A|8/1|8/2|8/3|8/4|8/5|合計| 支店1| 9 | 0 | 0 | 0 | 0 | 9 | 支店2| 1 | 0 | 0 | 0 | 0 | 1 | 合計 | 10 | 0 | 0 | 0 | 0 | 10 | 合計の行/列は最後にsumしますが、集計元表から 集計表カドの商品名、日付、支店を判別してセルに売上数を収める 手段のヒントを頂ければ幸いです。 セル関数でもVBAでもなんでも構いません。 宜しくお願いします。

  • エクセル関数を使用したデータ集計について

    関数の質問です。 仕事でデータ集計をしており、 あるデータを他のシートに集計できる関数はありますでしょうか。 具体的には、 添付画像のような Aの表に、Bのデータを、Cのルールを 用いて、集計したいです。 Vlookupとsumifsを用いろうとしましたが、うまくいきませんでした。 B-2のデータをvlookにして、 sumifsの式のデータ範囲の中にいれましたが、うまくできません。 補足 B-2の列をvlookで他の列に集計せずに、関数のみでBのシートからいきなりAの集計表に集計したいです。 (理由は、数字をあちこちに貼り付けると、その照合をしなくてはならないため、あちこちには貼りたくないのです) 関数は一つのセルの中に複数組み合わせるのは、もちろん問題ありません。 よろしくお願いいたします。

  • Excel VBA

    Excel VBAについて シート1にはデータが入ってます。 G列に日付、L列に商品名、N列に件数。 シート2には集計結果を入力したいです。 セルB2に、日付が10月1日から15日までで、商品名がAの件数の合計。 セルB3は、日付が10月16日から末日まで、セルB4は、日付が11月1日から15日までと半月毎に集計を半年後の末日まで繰返し、B2の数行下には、商品名Bの集計行を作り、その数行下には商品名Cの集計行を作りたいです。 これまでは関数SUMIFSで集計していましたが、複数店舗分のシートの更新・メンテナンスが大変なので、VBAでの集計を考えいろいろ調べてるのですが、方法が思い付かないので、ご教授ください。

専門家に質問してみよう