• ベストアンサー

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

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    : この処理に適した関数、計算の仕方を教えてください。 お願いします。

  • onmyo
  • お礼率48% (33/68)

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

  • ベストアンサー
  • kankon
  • ベストアンサー率20% (12/60)
回答No.5

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
質問者

お礼

ありがとうございました。なんとか解決しました。 みなさまのおかげです。

その他の回答 (4)

  • sgh
  • ベストアンサー率61% (75/121)
回答No.4

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"として見てく れます。

  • kankon
  • ベストアンサー率20% (12/60)
回答No.3

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

onmyo
質問者

補足

ご回答ありがとうございました。 たびたびすみません。データの抜けているところは行そのものが存在しません。 ID   CODE    COVERAREA 2 2 27852.76563 2 8 1660.632813 2 9 1865.390625 2 12 900 抜けている行を作成し、ID,CODE、0値を入れたいのですが・・・

  • kankon
  • ベストアンサー率20% (12/60)
回答No.2

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

onmyo
質問者

補足

たびたびすみません。データの抜けているところは行そのものが存在しません。 並び替えを行うと以下のような感じです。 ID   CODE    COVERAREA 2 2 27852.76563 2 8 1660.632813 2 9 1865.390625 2 12 900 抜けている行にID,CODE、0値を入れたいのですが・・・

noname#83007
noname#83007
回答No.1

エクセルで言うと、IDとcodeで「並べ替え」をすればいいと思うのですけど。 はずしていたらごめんなさい。

onmyo
質問者

補足

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

関連するQ&A

  • Excel関数を使った表計算について教えてください。

    Excel関数を使った表計算について教えてください。  E列には 1.2.3の数字がランダムに記入されている  F5:AJ40には あ・い・う・え・お がやはりランダムに記入されている(空白有り) 集計したいのは  E列 1 の行にある”あ”の数     2 の行にある”あ”の数     3 の行にある”あ”の数  同様 い・う・え・お についても集計したい 以上です よろしくお願いいたします。

  • Excel関数

    エクセルの関数について教えてください。 例えば、 あるセルの数値が100以下なら「1」、300以下なら「5」、500以下なら「7」、1000以下なら「10」・・・ というように値を出したいのですが好適な計算式はありますか? IF関数を使えば出来るのでしょうか? 教えてください。宜しくお願い致します。

  • Excel関数に関する質問です。

    Excel関数に関する質問です。 横のセル「対象*」セルに対する項目と値があるとします。横のセル1列分が1セットです。 添付画像にある、「対象*」セル、「項*」セル、「値*」セル(「*」は数字)がそれです。 「項*」セルには項目の名称、文字列が入ります。 「値*」セルには通常の数値とは異なり、コードのようなものが入ります。例えば「00-1234」。 「結果」セルに「項目1,値1,項目2,値2,項目3,値3~」のように計算結果を出します。 重要な点は、 ■1. それぞれのセル(「項*」、「値*」)の間に必ず「,」(コンマ)をつけて表示する。 「結果」セルの例:項目1,値1,項目2,値2,~ ■2. 「値*」セルの内容が、「None」の場合、その部分は表示しない。表示させないキーワードは空白や他の文字でもいいのですがとりあえず「None」で設定。 「結果」セルの例(1番目、3番目のセルが「None」の場合): 項目2,値2,項目4,値4 ■3. 計算結果を出すセルは「対象*」ごとに必ず同じセルでなければならない。 例えば、「対象1」は「J1」セル、「対象2」は「J4」セルに最終的な計算結果を出す。 ■4. 「対象*」セルによって項目があるもの(「値*」が「None」以外)と、ないもの(「値*」が「None」)の場所は決まっていない。 マクロや簡単なプログラムは知っているので作れると思いますが、関数のみでできるようにしたのですがどのようにするのか具体的に教えていただけないでしょうか? 回答で分からなかった点は、改めて補足で質問すると思いますがそのときはよろしくお願いします。 回答よろしくお願いします。

  • Accessの計算について

    いつもお世話になっております。 Access2002で、以下のような計算って出来るのでしょうか? <材料テーブル> ID|材料名|単価 1|木  |200 2|紙  |100 というテーブルがあり、コンボボックスで選んだ場合に材料テーブルのIDの値をmasterテーブルに以下のように格納させたいと思ってます。 <master> ID|数量| 1| 1| 2| 1| すなわち、masterテーブルには材料テーブルで選択したIDの値が挿入されるのですが、masterテーブルに挿入されたIDを元に、材料テーブルの単価を参照させて計算させると言うことです。 すなわち計算式は、ファームで合計欄という非連結のテキストボックスを作って、その中に、計算式を入れて計算させるということです。 合計=単価*数量 って具合です。実際は、masterテーブルに入っている値はIDなので、それをどうにかして、masterに入っているIDを元に単価を参照させて、フォーム上で計算させたいという風にしたいのですが・・・ よろしくお願いいたします。

  • EXCEL2000の関数を教えてください

    =ROUNDUP((A2-200)/400,0)+1 今上記の関数を使用しています。 この関数だけだとA2のセルに200以下の数値を入れると「1」あるいは「0」と表示してしまいます。 200<A2 の時に表示される数字はこのままでよいのですが 200≧A2>0 の時は全て「2」と表示させるには上記の関数に何を付け加えればよいのでしょうか? また何も数字を入れなかったときには「0」と表示をさせたいです(上記の関数のままでは「0」と表示されています)。 宜しくお願いします。

  • EXCEL関数について

    EXCELで集計する表を作成しました。 各項目ごとの小計もあるのですが、このような縦計算の場合、SUMで全部を指定してしまうと、全部の数値が入って計算されてしまうのですが、そうならないように、小計があるところはその数値を使用するか、小計を除いて値のみで計算していくか、簡単に総合計を出す関数はありますか?教えてください。(C商品やD商品のように小計がない場合もあります) ひとつひとつ対象の値を選択していけばいいのかもしれないですが、値がたくさんあるので、簡単にできる方法を知りたいです。 例 A商品   200 A商品   300 小計    500 B商品   100 B商品   20 小計 120 C商品   30 D商品   10     ・     ・     ・ 総合計 ?

  • ワードで表計算

    こんにちは、いつもお世話になっています。教えて下さい。  PC:ウインドウズ ビスタ ワード2007 ワートで表計算を行うってありました。 セルに記入した数字の合計値を計算すると、縦の合計値、横の合計値はできます。 それと、「関数貼り付け」内から、関数を選択することが出来ますとあるが、 上の「レイアウト」「データ」にある「計算式」を押すと下記の表示がでます。   計算式(F)  表示形式(N) ▼を押すと6項目あります。   関数貼り付け(U) ▼を押すと8項目あります。  (例:AVERAGEの値をだすとき) 計算式に、AVERAGEを記入してやったけど値がでません。 それで、カーソル、範囲選択、「表示形式」に記入と、いろいろ組み合わせしてやったら、値がでなかったり、構文エラーと表示されます。 どの様にするのですか お願いします。

  • array_rand関数

    現在、ランダム関数を使用して、配列にある値の中から ランダムにいくつかの配列を抜き出す処理を行っています。 $rand_keys = array_rand($id,2); for($k=0;$k<count($rand_keys);$k++){  $rand_id[$i][$k]=$id[$rand_keys[$k]]; } ただし、この関数では一つだけ取り出したい場合には使えません。 何かよい方法はありませんか??

    • ベストアンサー
    • PHP
  • エクセルにて作りたい計算表があるけど、関数をどのようにすればいいかわかりません

    みなさん、こんばんは。早速ですが質問です。 現在エクセルにて計算機(シュミレーター)を製作しているのですが、その計算表をつくるためにどのような関数を使用すればいいのかが分からない状態です。 以下にどのような仕組みを持った計算機を作りたいかの詳細を書くので、ここはこのような関数を使うといいよ。などといったアドバイスをよろしくお願いします。 ~~~~~以下計算機の概略~~~~~~~ ・ゴルフゲームの打球シュミレーターです。 ・幾つかの数値を入力すると(例残り距離、風、高低差など)その数値に応じた数値が出力される(例打つパワー、横ずれ具合など)というもの。 ・補正値の表から適切な数値を計算式に読み込む(風が3のときは表の風3を読み込むといった感じです。) このような計算機を作りたいと考えています。この中で特に三つ目の仕組みの作り方が全くわからない状況です。 くだらないなぁと思われるかもしれませんが、息子のためにつくってやりたい計算機なので、みなさまのお力をどうか貸してください。 よろしくおねがいします。

  • 表引きの関数で困っています

    よろしくお願いします VLOOKUP関数ですが うまく表引きできません  2列の表でA列B列にデーターをいれた表があります D1には 式 =vlookup(D1,A1:B10,2,false))です D1にA1からB101での表を参照して 数値を引っ張っています いつもはうまくいきますが A1が 通し番号の場合はOKで ランダムな数値になりますと 引っ張れません 同じ数値が複数あると 最初のものだけ ひろいます 通し番号でなくて ランダムな数値でも 引っ張るにはどんな関数なんでしょうか サルにもわかるように やさしく 教えてください