• ベストアンサー

エクセルについて ややこしいですが・・・

EXCEL MAC v.Xを使用しています。 うまく説明できるか分かりませんが・・・ 1月1日   AAAAA   BBBBB   CCCCC        Aの値    Bの値    Cの値       DDDDD   EEEEEE   FFFFFF        Dの値    Eの値    Fの値        GGGGG   HHHHH    IIIIIIIIIIIII        Gの値    Hの値    Iの値 1月2日   AAAAA   BBBBB   CCCCC        Aの値    Bの値    Cの値       DDDDD   EEEEEE   FFFFFF        Dの値    Eの値    Fの値       GGGGG   HHHHH    IIIIIIIIIIIII        Gの値    Hの値    Iの値 上の様な表を作っております。 アルファベットは項目です(「売り上げ」みたいな) 値のところは手入力と数式(例えば「=IF(D21&G21&J21="","",D21+G21+J21)」みたいな) となってます。 Q1そもそもこのような作り方は邪道なのでしょうか?  項目を右方向になが~く作ったほうがいいのでしょうか? Q2この様な表のため数値を集計しようとするとうまくいきません。  例えばあるセルに各日の「Aの値」の合計を集計しようとして (「Aの値」には上の「=IF(D21&G21&J21="","",D21+G21+J21)」の様な数式をいれてます) 「=B2+B8+B14+B20・・・・」と入力するとエラーになります。    やはりやり方が間違っているのでしょうか? Q3別の表に普通に「Gの値」を日付順に縦に並べたく、最初のセルに「=B6」と  入力し2段目に「=B12」3段目に「=B18」と6段づつふやして入力し  下方向に連続コピーしようとしてもうまく増加せずコピー出来ません  セル間隔のあいた数式の連続コピーはできないのでしょうか?  これも、そもそも元の表がわるいからでしょうか? この文章でうまく伝わるか分かりませんが とにかく自我流で本を片手に作っています。 以上、ややこしいですがよろしくお願い致します。

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

  • ベストアンサー
noname#79209
noname#79209
回答No.1

A1: ある意味では邪道です。 データベース的な使い方をしたいなら、横方向へ延ばして 各日毎に1行とした方が、検索等で使いやすく(使える)なります。 A2: これは、多分IF関数で、「""」を使っているからです。 関数の結果が「""」になっているセルを計算に使うとエラーになります。 「""」でなく「0」を使うべきです。 「=IF(D21&G21&J21="","",D21+G21+J21)」でなく 「=IF(D21&G21&J21="",0,D21+G21+J21)」とし、 ゼロを表示したくなければ、表示書式を「#,###;-#,###;」としてください。 A3: > そもそも元の表がわるいからでしょうか? そうとも言えます。使うときだけでなく作るときのことも考慮して 表を設計すべきです。 連続コピーしたいなら、「=B6」でなく =INDIRECT("Sheet1!$B"&ROW()*6) とすべきです。

nest-a
質問者

お礼

ありがとうございました。 ちょっと一から考え直してみます。

その他の回答 (3)

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

こういう表構成になったのはなぜですか。 多分エクセルの特長(初心者は関数の偏重)を理解しないで、表設計を行ったのでは。ひょっとすると、下記の(2)(3)の理由があるのかも知れないが。 (1)質問者の好み (2)入力するデータの入った原書がこれに近い形。 (3)入力時に横スクロールを質問者が嫌った (4)その他(印刷したとき見やすいと質問者は感じるとか) それらに対し、対策知識を増やし、1つずつつぶしていかないとならない。 関数やVBAを使って「リスト形式」(特別な意味があるのを判りますか。判らなければ、「エクセル リスト形式」でWEB照会のこと)に組み変えるようにすべきです。原本的でなくても作業表としてでも作るべきです。 やり方は基本は質問者が考えることだが、わからなければ、それだけに絞って質問したらよい。 計算が多いならリスト形式にすべきです。

nest-a
質問者

お礼

ありがとうございます。 回答は(1)と(3)です。 考え直してみます。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.3

Q1.邪道とまではいいませんが データベースとして考えるなら1行目が見出しで 2行目から各日のデータのほうが良いでしょうね。 Q2.エクセルの数式における考え方ですが 「=B2+B8+B14+B20」の場合、B2,B8,B14,B20のどれかひとつでも数値または空白でない場合エラーになります。 ■SUM関数で集計(数値以外のセルを0とみなします) 「=SUM(B2,B8,B14,B20)」 ■他の列に集計の目印となる項目があるなら 「=SUMIF($A$2:$A$20,項目,B$2:B$20)」 ■均等な行間隔の集計なら(下記はB2から6行毎の場合) 「=SUMPRODUCT((MOD(ROW(B$2:B$20)-2,6)=0)*(B$2:B$20))」 Q3. ■INDIRECT関数でセル座標を間接参照する。 「G2=INDIRECT("Sheet1!B"&(ROW()-1)*6)」 ■OFFSET関数でセル座標を間接参照する。 「G2=OFFSET(Sheet1!$B$6,(ROW()-2)*6,0)」

nest-a
質問者

お礼

ありがとうございます。 ちょっと私のスキルにあまる事をやろうとしていた様です。 シンプルにしたほうがいいみたいですね

noname#79209
noname#79209
回答No.2

#1です。 もし、AやDの値も取りたいのであれば、 別シートの1行目から指定するのであれば Aの値の場合: =INDIRECT("Sheet1!$B"&(ROW()-1)*6+2) Dの値の場合: =INDIRECT("Sheet1!$B"&(ROW()-1)*6+4) とします。 ご参考まで...

関連するQ&A