OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

表計算(Excel,Access)の関数を教えてください

  • すぐに回答を!
  • 質問No.195006
  • 閲覧数181
  • ありがとう数1
  • 気になる数0
  • 回答数5
  • コメント数0

お礼率 48% (33/68)

ID,CODE,COVERAREAという項目の配列があります。
IDは0~630、CODEは1~12まであり、それぞれに対応した値(CODEAREA)
があります。すべてのCODEにIDは対応しておらず、抜けている数字もありランダムに並んでいます。コードごとに並べ替えると以下のような感じです。
例)ID = 35, CODE = 1, CODEAREA = 36970.94673
  ID = 489, CODE = 1, CODEAREA = 36970.9467(実際の数値はすべて違います)
  ID = 23, CODE = 1, CODEAREA = 36970.94673
  ID = 7, CODE = 1, CODEAREA = 36970.94673
  ID = 95, CODE = 1, CODEAREA = 36970.94673
  ID = 195, CODE = 1, CODEAREA = 36970.94673
  ID = 503, CODE = 1, CODEAREA = 36970.94673


IDごとにCODEの値(CODEAREA)をまとめたい(以下参照)のですが、量が多すぎてどうにもなりません。

  ID CODE COVERAREA
   103 1 27573.3754
   103 2 27573.3754
   103 3 27573.3754
   103 4 0
   103 5 27573.3754
   :

この処理に適した関数、計算の仕方を教えてください。
お願いします。
通報する
  • 回答数5
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.5
レベル8

ベストアンサー率 20% (12/60)

EXECLでサンプルマクロ作成しました。何分まだ慣れてないのでその点はご了承を

バックアップは忘れずに
まずIDとcodeで「並べ替え」をします。
A列ID
B列Code
C列CODEAREA
としてください。
並び替えたデータを選択して切り取り頭をA2へ貼り付けてください。
ツール マクロ マクロ
と進みマクロ名に任意の名前(ここではaaaaa)を付け作成をクリックしてください

VBediterが開くのでsub aaaaaとend subの間に

y = 0
For ID = 0 To 100
For Code = 1 To 12
y = 12 * ID + Code + 1
Cells(y, 1).Select
If Cells(y, 1) = "" Then Selection.EntireRow.Delete
If Cells(y, 1).Value <> ID Or Cells(y, 2).Value <> Code Then Selection.EntireRow.Insert: Cells(y, 1) = ID: Cells(y, 2) = Code: Cells(y, 3) = 0

Next Code
Next ID
End

のコードをコピーしてください
後はツール マクロ マクロ 実行します
お礼コメント
onmyo

お礼率 48% (33/68)

ありがとうございました。なんとか解決しました。
みなさまのおかげです。
投稿日時 - 2002-01-10 22:11:06
-PR-
-PR-

その他の回答 (全4件)

  • 回答No.1

エクセルで言うと、IDとcodeで「並べ替え」をすればいいと思うのですけど。 はずしていたらごめんなさい。 ...続きを読む
エクセルで言うと、IDとcodeで「並べ替え」をすればいいと思うのですけど。
はずしていたらごめんなさい。
補足コメント
onmyo

お礼率 48% (33/68)

並べ替えて新しいシートにカット&ペーストしてたんですが、何しろ3000行くらいあるんで手がつってしまいました(泣)
各IDのCODEごとのCODEAREAの合計とかも求めなきゃならないんで抜けてるところとかも0値をいれて出力しなおしたいということなんです。
やっぱ地道にやるしかないんかな・・・・
投稿日時 - 2002-01-09 02:22:43


  • 回答No.2
レベル8

ベストアンサー率 20% (12/60)

ID CODE COVERAREAの列は分かれているのでしょうか? 分かれているなら#1の方がいわれているようにしてみましょう A1 ID B1 CODE C1 COVERAREA になっているとします。その隣(D列)にもうひとつCOVERAREAを作成してそこに    ”=IF(C1="",0,C1)” を入れれば抜けてるところも0が入ります そしてC列を削 ...続きを読む
ID CODE COVERAREAの列は分かれているのでしょうか?
分かれているなら#1の方がいわれているようにしてみましょう

A1 ID
B1 CODE
C1 COVERAREA

になっているとします。その隣(D列)にもうひとつCOVERAREAを作成してそこに
   ”=IF(C1="",0,C1)”
を入れれば抜けてるところも0が入ります
そしてC列を削除すれば大丈夫だと思うのですが
補足コメント
onmyo

お礼率 48% (33/68)

たびたびすみません。データの抜けているところは行そのものが存在しません。
並び替えを行うと以下のような感じです。

ID   CODE    COVERAREA
2227852.76563
281660.632813
291865.390625
212900

抜けている行にID,CODE、0値を入れたいのですが・・・
投稿日時 - 2002-01-10 17:49:12
  • 回答No.3
レベル8

ベストアンサー率 20% (12/60)

補足です ”=IF(C1="",0,C1)” を入れた後、D列を項目の行だけ 選択してコピーしてください。 自動的にC2,C3に変わります。 行き過ぎるとそこも0が入ってしまいます。 VBAなどで組めばもっといい方法があると思いますが ...続きを読む
補足です

”=IF(C1="",0,C1)” を入れた後、D列を項目の行だけ
選択してコピーしてください。
自動的にC2,C3に変わります。
行き過ぎるとそこも0が入ってしまいます。

VBAなどで組めばもっといい方法があると思いますが
補足コメント
onmyo

お礼率 48% (33/68)

ご回答ありがとうございました。
たびたびすみません。データの抜けているところは行そのものが存在しません。

ID   CODE    COVERAREA
2 2 27852.76563
2 8 1660.632813
2 9 1865.390625
2 12 900

抜けている行を作成し、ID,CODE、0値を入れたいのですが・・・
投稿日時 - 2002-01-10 17:53:18
  • 回答No.4
レベル10

ベストアンサー率 61% (75/121)

ACCESSの場合で回答します。 テーブル名が"TABLE1" フィールド名が「ID」「CODE」「COVERAREA」 で構成されていると仮定します。 新規クエリを作成し、以下のSQL文をSQLビューに貼り付けると、 「ID」「CODE」をグループ化し「COVERAREA」の合計を取ることが出来ます。 Select ID,CODE,Sum(COVERAREA) A ...続きを読む
ACCESSの場合で回答します。
テーブル名が"TABLE1"
フィールド名が「ID」「CODE」「COVERAREA」
で構成されていると仮定します。

新規クエリを作成し、以下のSQL文をSQLビューに貼り付けると、
「ID」「CODE」をグループ化し「COVERAREA」の合計を取ることが出来ます。

Select ID,CODE,Sum(COVERAREA) AS COVERAREA計 from TABLE1
Group by ID,CODE;

ACCESSの場合、グループ化をかけるとGroup byの項目順に勝手に並び替
えてくれるようです。
また、「COVERAREA」が"Null"の場合もSum関数を使えば"0"として見てく
れます。
このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ