• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel2010グループ化のグループ化)

Excel2010で体重・体脂肪の記録をグループ化する方法

このQ&Aのポイント
  • Excel2010を使用して体重・体脂肪の記録を行っている際に、長期間経過すると行数が増えるため、月ごとにグループ化することを試みた。しかし、特定の月のグループ化がうまくできず、問題が生じた。
  • 具体的には、2011年の1月を1つの行に表示するため、2月から12月までの行をまとめてグループ化しようとしたが、1月のグループ化ができなかった。
  • 問題の原因として、既存のボタン付き行には新しいボタンを追加できないことが考えられる。そのため、1月の行に新たなボタンを追加することはできないかもしれない。

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

  • ベストアンサー
  • acha51
  • ベストアンサー率41% (436/1042)
回答No.1

1.A1に2011年1月1日、順に日にちが入っているとします  A1とA2の間に2行挿入、ここに2011年1月1日をコピーします    つまり2011年1月1日がA1、A2,A3と3行になります 2.2011年2月1日の行A34も同様にA34,A35と2行になるようにします  以下12月まで各月1日を2行とします 3.1月1日の後ろの行A3から1月31日 A34を選択してグループ化します 4.以下12月まで同様にグループ化します  +ボタンを押すとA1に2011年1月1日、A2に2011年1月1日、A34 2011年2月1日 ・・・  と表示されるはずです、2月から12月まで同様にグループ化し+を押すと  各月1日の行が表示されるはずです 5.A2の2011年1月1日から12月31日までを選択してグループ化+を押すと  A1の2011年1月1日だけが表示されるはずです これで月ごと、年ごとにグループ化されます A列右の欄外のグループマークが3列できているはずです エクセル2003ですが2010も同じでしょう 表示の問題で  A1の書式設定をユーザー定義 yyyy”年”  とすると2011年と表示します  A2の書式設定をユーザー定義 m”月”  とすると1月と表示します、以下同様

nickname_1973
質問者

お礼

acha51さん、 ご回答ありがとうございます。acha51さんのやり方がお三方の中で一番無難でした。 ありがとうございました。

その他の回答 (2)

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

1つの行にボタンを2つ持たせる事は出来ません。 11月1日の行の「一つ前の行」に「2011年11月」とだけ書いた行を挿入してその行を11月のアタマとし,その行には11月の集計値を「SUBTOTAL関数を使って」計算して入れておく 1月1日の行の一つ前に記入した「2011年1月」の行の,更に一つ前の行に「2011年」を用意し,それを2011年の行全体のアタマとして,その行には2011年全体の集計値をやはりSUBTOTAL関数を使って計算して入れておく といった作り方をする事になります。

nickname_1973
質問者

お礼

keithinさん、 ご回答ありがとうございます。何で1行にボタンを複数作れないのですかね?別段問題はないと感じますが。 ありがとうございました。

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

次のようにすることで関数を使うことでお望みのデータを表示させるようにしてはどうでしょう。 例えばシート1には従来からのデータがありA2セルから下方には日付が、B2セルから下方には体重が、C2セルから下方には体脂肪が入力されているとします。 そこでお望みの表ですがシート2に表示させるとしてA1セルには月毎のデータとでも入力しA2セルには表として出したい最も古い年月を例えば2009/11/1のように入力します。セルの表示形式をユーザー定義で yyyy/mmのようにしてもよいでしょう。 そこでA3セルには次の式を入力して下方にオートフィルドラッグコピーします。 =IF(DATE(YEAR($A$2),MONTH($A$2)+ROW(A1)-1,1)>MAX(Sheet1!$A:$A),"",DATE(YEAR($A$2),MONTH($A$2)+ROW(A1)-1,1)) A列のセルの表示形式はユーザー定義でyyyy/mmのようにします。 B3セルには次の式を入力してC3セルまでオートフィルドラッグコピーしたのちに下方にもオートフィルドラッグコピーします。 =IF(OR($A3="",COLUMN(A1)>2),"",INDEX(Sheet1!$B:$C,IF($A3<MIN(Sheet1!$A:$A),2,IF(COUNTIF(Sheet1!$A:$A,$A3),MATCH($A3,Sheet1!$A:$A,0),MATCH($A3,Sheet1!$A:$A,1)+1)),COLUMN(A1))) これでA2セルで指定した後の月毎のデータ(1日がればその日なければその月の初めの日のデータ)が表示されます。 次に望みの月における日ごとのデータですが次のようにします。 シート2のF1セルには日ごとのデータとでも入力し、F2セルには日ごとに表示したい年月日を2012/1/1のように入力しセルの表示形式のユーザー定義でyyyy/mのようにすればよいでしょう。 F3セルには次の式を入力して下方にオートフィルドラッグコピーします。 =IF(OR(F$2="",MONTH(F$2)<>MONTH(DATE(YEAR(F$2),MONTH(F$2),ROW(A1)))),"",DATE(YEAR(F$2),MONTH(F$2),ROW(A1))) セルの表示形式はユーザー定義で d のようにします。 G3セルには次の式を入力してH3セルまでオートフィルドラッグコピーしたのちに下方にもオートフィルドラッグコピーします。 =IF(OR(COLUMN(A1)>2,COUNTIF(Sheet1!$A:$A,$F3)=0,$F3>MAX(Sheet1!$A:$A)),"",INDEX(Sheet1!$B:$C,MATCH($F3,Sheet1!$A:$A,0),COLUMN(A1))) これで指定された年月におけるデータが日日ごとに表示されます。

nickname_1973
質問者

お礼

KURUMITOさん、 ご回答ありがとうございます。ご提示のやり方で出来ました。 本当にありがとうございました。