エクセルの表です。
A B C
1 車番 計量値
2 2008 1200
3 2008 1300
4 2008 1250
5 1008 1250
6 1008 1250
7 1008 1300
8 2112 1300
9 2112 1350
10 2008 1450

この表の車番毎の積載量の平均を連続で求めて別のシートに表示したいのです。この場合車番2008はA2からA4で平均値をもとめ、A10は別に求めA列の車番順に表示して積載量の平均値を一覧にしたいのです。
欲張りな質問ですがどなたか教えて下さい。

「車番毎の計量値の平均を出す方法を教えて下」の質問画像

このQ&Aに関連する最新のQ&A

A 回答 (9件)

No2です。



>私の希望している結果が得られていると思いますが、A1:B4に
>上書きされてしまいます。
一部シート名を省略した書き方でマクロを作成していますが、元のご質問文のほうに

>別のシートに表示したいのです。
とありましたので、別シートに集計が出ているはずですが?
(画像は同じシートになっていますが)
元のシートはそのままのはずなので、上書きではないはずなんですが…

D列に集計を出すのなら、No7様がヒントを書いてくださっていますが、記入する列の指定をNo7の回答のようにして、かつ、新規シートを作成する以下の1行を削除すれば、同じシートのD列に記入されます。
 Worksheets.Add Before:=ActiveSheet '←この行を削除

また、集計の記入開始を2行目からにしたければ、rOutが記入する行を示す変数になっていますので、その初期値を2に変えれば、2行目から表示されます。
 rOut = 1 ’← これを rOut = 2 に変更

>>列方向もデータの最後まで計算させる方法を教えてください。
各列について、同じように平均値を求めるということでしょうか?
列方向にも集計のループをいれれば可能ですが、現状は集計対象が1列だけだったので、車番のチェック(同じ番号かどうか)と集計を同時並行で行っています。
列が多数の場合は、別々に行った方が混乱が少なくなりますね。

やるとすればこんな手順。(集計部分の手順のみ)
1)同じ車番の範囲を先にチェック。
  同時にその範囲の列数の最大値を求めておく
   (↑行によって列数が変わる場合)
2)上で求めた範囲(=行の範囲)で各列を集計するループ
 (2列目から最大列まで)
 1つの列について、対象行の数値(ブランクは除くなどして)の合計と、
 セル数をカウントしておいて、平均値を求める。

計算もマクロで行うなら↑のような手順になりますが、これだと少々面倒なので、1)で同じ車番の範囲を調べたら、集計表にはその範囲を利用して
 =AVERAGE(範囲)
みたいな式を定義してしまう方が、簡単そうですね。

式を定義する方法だと、こんな感じになります。
1行目(タイトル行?)は、もとのシートのものをコピーします。
また、タイトル行の最大列までを対象として、式を代入します。
(集計は、新しいシートに行われます)
Sub test()
Dim st As Worksheet, dst As Worksheet, code As String
Dim rw1 As Long, rw2 As Long, rmx As Long, rOut As Long
Dim col As Long, colmx As Long

Set st = ActiveSheet
rmx = Cells(Rows.Count, 1).End(xlUp).Row
colmx = Cells(1, Columns.Count).End(xlToLeft).Column
Worksheets.Add Before:=ActiveSheet
Set dst = ActiveSheet
st.Rows(1).Copy dst.Rows(1)

rOut = 2
rw1 = 2
While rw1 <= rmx
 rw2 = rw1
 code = st.Cells(rw1, 1).Value
 If code <> "" Then
  While st.Cells(rw2 + 1, 1).Value = code
   rw2 = rw2 + 1
  Wend
  dst.Cells(rOut, 1).Value = code
  For col = 2 To colmx
   dst.Cells(rOut, col).Formula = "=AVERAGE(" & st.Name & "!" _
    & Cells(rw1, col).Address & ":" & Cells(rw2, col).Address & ")"
  Next col
  rOut = rOut + 1
 End If
 rw1 = rw2 + 1
Wend
End Sub
    • good
    • 0
この回答へのお礼

ありがとうございます。
望み通りの結果を得ることが出来ました。
すばらしいです。

お礼日時:2009/05/26 16:02

[回答番号:No.5この回答への補足]へのコメント、



》 車番はA列の順番通りに出てきて欲しいのです。

それはピボテでは不可能です。精々次のように手動で行なうぐらいですね。

平均 / 計量値
車番      計測回 合計
2008        1 1250
          2 1450
1008        1 1250
          2 1250
2112        1 1325
          2 1300


》 後で時間順にソートするなどは可能でしょうか。

♪こういう具合にしやしゃんせ♪と具体例を表で示したらどうです?

この回答への補足

後からupした画像に示しましたように車番はA列に出てきた車番順であること。
車番ごとに計量値の平均を求めるが、同じ車番でも1回目と2回目は分けて平均値を求めること。
計量値は70項目程度あること。
などが条件です。

補足日時:2009/05/24 19:18
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2009/05/25 17:12

えっと つづけて#2さんのマクロについて



>マクロはほとんど分かりませんが、取りあえずコピーして実行してみました。
>私の希望している結果が得られていると思いますが、A1:B4に上書きされてしまいます。

ならば

>Cells(rOut, 1).Value = code
>Cells(rOut, 2).Value = rslt / rCnt


Cells(rOut, 4).Value = code
Cells(rOut, 5).Value = rslt / rCnt

にしてみたらいかがかな?

※コードの意味がわからないでも実行できるってのはびっくりだけどね

この回答への補足

回答ありがとうございます。
面倒でなければもう少し教えて下さい。
この表は行数はデータが多ければ1500行程度、列数は70行程度のかなり大きなデータ数の表です。
行方向はこのままで良さそうですが、列方向もデータの最後まで計算させる方法を教えてください。

補足日時:2009/05/23 18:03
    • good
    • 0
この回答へのお礼

ありがとうございました。
とても参考になりました。

お礼日時:2009/05/25 17:12

#1です。


回答時の環境では画像が見えなかったので D列に補助値 と書きましたが、C列にするのが適切なようですね。

補助値があなたの希望する同一車番でも別平均とするキーにするものです。手入力してください。
提示された例では
1~9行目:1
10~15行目:2

数値を例にしましたが補助値はABCなどでもかまいません。
ピボットの行で
車番/補助値の順とし、それぞれ小計をなしにすれば見やすいでしょう

この回答への補足

回答ありがとうございます。
お二人の方から同じ回答を頂きましたので同じ補足をさせて頂きますが、車番はA列の順番通りに出てきて欲しいのです。
実はこの表には時間のデータもあるのですが、集計したいのは車番毎の平均値なので車番を行ラベルにする必要があると思うのですが、後で時間順にソートするなどは可能でしょうか。

補足日時:2009/05/23 18:02
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2009/05/25 17:10

   A   B    C  


1  車番 計測回 計量値
2  2008    1  1200
3  2008    1  1300
4  2008    1  1250
5  1008    1  1250
6  1008    1  1250
7  1008    1  1250
8  2112    1  1300
9  2112    1  1350
10 2008    2  1450
11 1008    2  1200
12 1008    2  1300
13 2112    2  1250
14 2112    2  1300
15 2112    2  1350

上に示すように手入力による「計測回」を設けたら如何ですか?
下のようにピボットテーブルで簡単に求まりますよ。
(「合計」欄は平均値を示しています)

平均 / 計量値
車番      計測回 合計
1008        1 1250
          2 1250
2008        1 1250
          2 1450
2112        1 1325
          2 1300

この回答への補足

回答ありがとうございます。
お二人の方から同じ回答を頂きましたので同じ補足をさせて頂きますが、車番はA列の順番通りに出てきて欲しいのです。
実はこの表には時間のデータもあるのですが、集計したいのは車番毎の平均値なので車番を行ラベルにする必要があると思うのですが、後で時間順にソートするなどは可能でしょうか。

補足日時:2009/05/23 18:00
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2009/05/25 17:11

初心者は初心者らしく・・・



   A   B   C   D   E    F
1         1008 2008 2112 ←車番
2  車番 計量値 1267 1300 1325 ←平均値
3  2008  1200    1200
4  2008  1300    1300
5  2008  1250    1250
6  1008  1250 1250
7  1008  1250 1250
8  1008  1300 1300
9  2112  1300       1300
10 2112  1350       1350
11 2008  1450    1450

C2: =ROUND(AVERAGE(C3:C11),0)
C3: =IF($A3=C$1,$B3,"")

この回答への補足

回答ありがとうございます。
早速試してみましたが私の質問の仕方が悪かったので、
マクロを使用する方法以外のどなたの回答も車番2008が全て累計されて計算されます。
初めに出てきた2008は3回計量して1車分の積載ですし、後に出てくる2008は1回の計量で1車分になります。
また、2112は2回計量で1車分になります。
ここでは1車分ずつ計量値の平均値を求めたいので、車番は同じでも初めの2008と後の2008は別の車の扱いにして、車番順というのはA列に上から出てくる車番順に並べて取り出したいのです。

補足日時:2009/05/22 17:31
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2009/05/25 17:09

こんばんは!


すでに回答は出ていますが・・・
他の方法の一例です。

>A10は別に求め・・・と書いてあるので、10行目を除いた平均です。

↓の画像で
E2セルを =SUMIF($A$2:$B$9,D2,$B$2:$B$9)/COUNTIF($A$2:$A$9,D2)
としてオートフィルでコピーします。

以上、参考になれば幸いです。m(__)m
「車番毎の計量値の平均を出す方法を教えて下」の回答画像3

この回答への補足

回答ありがとうございます。
この方法では同じ車番が出てくる度に検索範囲を変更して繰り返すことになるのでしょうか。
D列の車番をA列に出てくる順番通りに、自動で取得したいのですが。

補足日時:2009/05/22 18:26
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2009/05/25 17:08

マクロでの例です


不明部分は適当に作成していますので、適宜修正を…

Sub test()
Dim st As Worksheet, code As String, rslt
Dim rw As Long, rmx As Long, rOut As Long, rCnt As Long

Set st = ActiveSheet
rmx = Cells(Rows.Count, 1).End(xlUp).Row
Worksheets.Add Before:=ActiveSheet
rOut = 1
rw = 1

While rw <= rmx
 rw = rw + 1
 code = st.Cells(rw, 1).Value
 If code <> "" Then
  rCnt = 1: rslt = 0
  If IsNumeric(st.Cells(rw, 2).Value) Then rslt = st.Cells(rw, 2).Value
  While st.Cells(rw + 1, 1).Value = code
   rw = rw + 1: rCnt = rCnt + 1
   If IsNumeric(st.Cells(rw, 2).Value) Then rslt = rslt + st.Cells(rw, 2).Value
  Wend
  Cells(rOut, 1).Value = code
  Cells(rOut, 2).Value = rslt / rCnt
  rOut = rOut + 1
 End If
Wend
End Sub

この回答への補足

回答ありがとうございます。
マクロはほとんど分かりませんが、取りあえずコピーして実行してみました。
私の希望している結果が得られていると思いますが、A1:B4に上書きされてしまいます。
私のやり方が悪いのかよく分かりません。
もう少し、教えて下さい。

補足日時:2009/05/22 18:37
    • good
    • 0
この回答へのお礼

ありがとうございました。
この後は自分で勉強して望む形にしたいと思います。

お礼日時:2009/05/25 17:08

D列に補助値を入力し、ピボットテーブルで平均にすればよいと思います。


>車番2008はA2からA4で平均値をもとめ、A10は別に求めA列の車番順に表示して積載量の平均値を一覧にしたいのです

ピボットの行で車番を優先すれば希望の形になります。

この回答への補足

返答ありがとうございます。
早速試してみましたが、私の質問の仕方が悪かったので、マクロを使用する方法以外のどなたの返答も車番2008が全て累計されて計算されます。
初めに出てきた2008は3回計量して1車分の積載ですし、後に出てくる2008は1回の計量で1車分になります。
また、2112は2回計量で1車分になります。
ここでは1車分ずつ計量値の平均値を求めたいので、車番は同じでも初めの2008と後の2008は別の車の扱いにして、車番順というのはA列に上から出てくる車番順に並べて取り出したいのです。

補足日時:2009/05/22 18:21
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2009/05/25 17:06

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q密度関数値f(y)から分布関数値F(y)を求めたい

密度関数値f(y)から分布関数値F(y)を求めたいのですが、わかりません。


f(y)=0.0104
になりました。

これから、
F(y)を求めたいのですが、ネットで調べてもどうも分かりません。

もしかして、f(y)=0.0104がおかしいのでしょうか?


どなたか教えてください><

Aベストアンサー

>f(y)=0.0104がおかしいのでしょうか?
その通りです。
密度関数の性質
∫(-∞→∞) f(y)dy=1
を満たさなくてはいけません。

f(y)=0.0104 だと
∫(-∞→∞) f(y)dy=∞
となって密度関数の性質を満たしませんね。

なお、分布関数F(y)と密度関数f(y)の間には
F(y)=∫(-∞→y)f(t)dt, F(∞)=1
という関係にあります。

Q曜日別の売上平均値をだしたいです。平日の平均値と土日の平均値です。

初めての質問なので、分かりづらいかもしれませんが、切実に困ってます。
売上の平均値を出したいのですが、関数が思いつきません。
平日の平均値を土日合算の平均値を算出したいです。
エクセルには以下の内容になります。

B1:平日の平均値
B2:土日の平均値

B4:日付開始
B34:日付終了

C4:曜日開始
C34:曜日終了
尚、曜日に関してはWEEKDAY関数をいれており、
日付を「yyyy/mm/dd」で入力すると、自動で算出できるようにしております。

曜日が文字列であるならば、出来るのですが。。


どなたかご教示いただけますでしょうか。
よろしくお願いいたします。

Aベストアンサー

こんにちは!

>尚、曜日に関してはWEEKDAY関数をいれており、
というコトなので、
C列(C4~C34セル)にWEEKDAY関数が入っていて、1~7の数値が表示されている!
と解釈してよいのでしょうか?

どのような式にされているのか判りませんが、C4セルを
=IF(B4="","",WEEKDAY(B4,2))
としC34までフィル&コピーしておくと
B1セルは
=AVERAGEIF(C4:C34,"<6",A4:A34)
B2セルは
=AVERAGEIF(C4:C34,">5",A4:A34)
とすれば大丈夫だと思います。

>曜日が文字列であるならば、出来るのですが
とありますが、文字列でも当然可能です。
ただ、少し式が長くなると思います。m(_ _)m

QEXCELでA列記載の数値に対応するB~F列のデータをG列に返すには?

A1からA10のセルに列順を示す1から5までの数値がランダムに入っています。
B1からF10までのセルにデータ(文字列または数値)が入っています。
B列を1列目、以下C~F列を2~5列目として、G列にA列の数値に対応する列のデータを返したいのですが、数式を忘れてしまい困っています。初歩的なな質問で恐縮ですが至急どなたかご教示ください。
例えば下表のとおりA1の数値が1のときはB1を、4の時はE1をというようにです。

列順(1)  (2) (3) (4) (5) 
A  B   C   D   E   F  G
1 山田 田中 斉藤 鈴木 佐藤 山田
4 池田 木戸 松尾 山口 近藤 山口
5  …  …  …  …  …
2  …  …  …  …  …

Aベストアンサー

H1:=INDEX(B1:G1,,A1)
以下コピーということでしょうか

QA1に数字の1を入力するとB1の値がA1に表示、A2に数字の2を入力するとB2の値がA2に表示

エクセル初心者です

セルのA1に数字の1を入力するとB1の値がA1に表示、A2に数字の2を入力するとB2の値がA2に表示されるようなものを作りたいのですが・・・
どなたかご教授お願いします

例えば、A1に1を入れるとB1の値"北海道"がA1に表示され、A2に2を入れるとB2の値"青森"がA2に表示といった感じでです

宜しくお願いいたします

Aベストアンサー

No3,5,6です。
補足要求をしましたが時間がないので、No6での以下の理解、

B4がROOT,C4が♭9,D4が9,E4がm3,F4がM3~M4がM7
置き換え対象はB6:W11の範囲

ということでいいのなら以下で出来ます。

1.シートのタブを右クリックし、コードの表示を選択
2.出てきたVBエディター(白い画面)に下記をコピペ

Private Sub Worksheet_Change(ByVal Target As Range)
Dim x
If Intersect(Target, Range("B6:W11")) Is Nothing Then Exit Sub
x = Target.Value
Application.EnableEvents = False
Target.Value = Range("A4").Offset(0, x)
Application.EnableEvents = True
End Sub

3.AltキーとF11キーを一緒に押してワークシートへもどります。

Qf(x)=0の近次解を求める数値計算について 

方程式 f(x)=0 
の近次解を求める数値計算に関する質問です。

代表的な計算方法には二分法、はさみうち法、ニュートン法、逐次代入法
などがあるようですが、

f(x)が以下のような関数であるときどのように近似解を求めたらよいでしょうか?

(1)  f(x)はどのxに対しても常にf(x)≧0となるような関数
(2)  f(x)=0 となるxはただ一つだけである
(2)  f(x)は非常に複雑な関数でf(x)を微分するのは困難

趣味で行っている3Dのモデリングに関するプログラム中に必要になった関数で、
このような関数に対し、二分法をベースにしたプログラムをつくってみましたが、
非常にだらだらとしたアルゴリズムでなっとくできません。
この関数に適したよいを御存知の方おられましたら御回答くださいませ。


またもしf(x)が 

(4)  f(x)= |2x+3| のように f(x)が0になるまでは単調減少で、0になってからは単調増加である

という条件がさらに加わった場合どうなるかについてもご解答いただけると助かります。

方程式 f(x)=0 
の近次解を求める数値計算に関する質問です。

代表的な計算方法には二分法、はさみうち法、ニュートン法、逐次代入法
などがあるようですが、

f(x)が以下のような関数であるときどのように近似解を求めたらよいでしょうか?

(1)  f(x)はどのxに対しても常にf(x)≧0となるような関数
(2)  f(x)=0 となるxはただ一つだけである
(2)  f(x)は非常に複雑な関数でf(x)を微分するのは困難

趣味で行っている3Dのモデリングに関するプログラム中に必要になった関数で、
このような...続きを読む

Aベストアンサー

>二分法をベースにしたプログラムをつくってみましたが、
>非常にだらだらとしたアルゴリズムでなっとくできません。
もし、それが極小値を求めるように二分法を改造したのであれば、
その方法で合っています。
少しでも計算時間を稼ぎたいなら、分割方法を工夫します。
「黄金分割法」を使います。
http://www.sra.co.jp/people/miyata/algorithm/goldsect.txt
※極小(大)値を求めるアルゴリズムで、f(x)が単峰性という以外には制約が無い。

ちなみに、
二分法、はさみうち法:X=A、X=Bで、F(X)の正負が入れ替わるように区間を
  設定する必要があるため、この方法は使えない。
ニュートン法:f(x)の微分が判らない場合、f'(x)=(f(x+dx)-f(x))/dx
  で無理やり計算できるから、ニュートン法が使えないわけではない。
  ただし、f(x)=0付近において、f'(x)もゼロに近いから、運が悪いと発散して解が求まらない場合があります。
逐次代入法:逐次代入法も、発散と隣り合わせです。
 ※ニュートン法も逐次代入法の一種。

>(4)  f(x)= |2x+3| のように f(x)が0になるまでは単調減少で、0になってからは単調増加である
(1)と(2)が成立すれば、必ず(4)が成立するのだけど....
この関数でやっかいな点は、微分が連続関数となっているかどうか。
微分が連続関数:極小値の位置で微分もゼロ。 したがって、f(x)をじかに求める場合、ニュートン法や逐次代入法では発散するかも。
ただし、微分のかわりに差分を使って、差分=0のxを求める方法はok。
微分が極小値の位置で不連続:差分=0となるxを求める方法がうまくいかない可能性がある。(2分法ならば無理やりですが解は求まる。)

それやこれやで、発散しないで解にたどり着ける可能性が高い方法は2つ。(計算速度を犠牲にします。)
1つはf(x)を直接使い、黄金分割法。
もう1つは、微分のかわりに差分を使い、2分法を用いて差分=0となるxを求める。
黄金分割法のほうが計算時間は短かそうです。

>二分法をベースにしたプログラムをつくってみましたが、
>非常にだらだらとしたアルゴリズムでなっとくできません。
もし、それが極小値を求めるように二分法を改造したのであれば、
その方法で合っています。
少しでも計算時間を稼ぎたいなら、分割方法を工夫します。
「黄金分割法」を使います。
http://www.sra.co.jp/people/miyata/algorithm/goldsect.txt
※極小(大)値を求めるアルゴリズムで、f(x)が単峰性という以外には制約が無い。

ちなみに、
二分法、はさみうち法:X=A、X=B...続きを読む

QExcel 2007にて最小値・最大値・平均値が計算されなくなってしまいました。

違う相談サイトにて質問させて頂きましたが、回答がなく急ぎ助けて頂きたくこちらにて質問させて頂きます。
Excel 2007使用です。E2~E25未入力セル(必要時入力)があり、折れ線グラフがうまくつながらなく「データ要素を線で結ぶ」にチェックしてもグラフの線が未入力部分も線でつながってしまう為、E2の式を「=IF(OR(C2="",D2="")=TRUE,NA(),C2-D2)」と入力し(E25~E25までオートフィル)表示された「#N/A」は条件付き書式で非表示したのですが、それまでE26で最小値として「=MIN(E2:E25)」・E27で最大値として「=MAX(E2:E25)」・E28で平均値として「=IF(COUNT(E2:E25),AVERAGE(E2:E25),)」と入力して計算され表示されていたのですが、折れ線グラフをうまく表示する為にE2~E25の式を変更したらグラフはうまく表示されたのですが、最小値・最大値・平均値が計算されなくなってしまいました。どうしてもこの3種の計算も大事で、外す事も出来ず色々調べたのですがわからなく大変困っております。助けて下さい。当方まだ未熟なのでわかりやすく教えて下さい。よろしくお願いいたします。説明が下手でわかりにかった場合お詫び致します。

違う相談サイトにて質問させて頂きましたが、回答がなく急ぎ助けて頂きたくこちらにて質問させて頂きます。
Excel 2007使用です。E2~E25未入力セル(必要時入力)があり、折れ線グラフがうまくつながらなく「データ要素を線で結ぶ」にチェックしてもグラフの線が未入力部分も線でつながってしまう為、E2の式を「=IF(OR(C2="",D2="")=TRUE,NA(),C2-D2)」と入力し(E25~E25までオートフィル)表示された「#N/A」は条件付き書式で非表示したのですが、それまでE26で最小値として「=MIN(E2:E25)」・E27で最大値とし...続きを読む

Aベストアンサー

こんにちは。

質問は、適当に改行を入れて読みやすくしてください。

=IF(OR(C2="",D2="")=TRUE,NA(),C2-D2)」
NA()がはいると、計算されません。ですから、配列数式で、エラー値を除外してあげないといけません。

=MAX(IF(ISNA(E2:E25),"",E2:E25)

=MAX(IF(ISNA(E2:E25),"",E2:E25)

=SUM(IF(ISNA(E2:E25),"",E2:E25))/COUNT(E2:E25)

これらは、配列数式ですから、一旦式を入力したら、F2を押して、『ShiftとCtrlを押しながらEnterキー』を押して、再確定してください。

Q関数 ~に最も近く~よりも高い数値

関数苦手です。宜しくお願いします。
セルA1からF5まで適当な数値が入っており、B1からF5までの中でセルA1に最も近く、A1よりも高い数値を選ばせたいです。同様なA1に最も近く、A1よりも低い数値を選ぶ式をお願いします。

Aベストアンサー

Excelの基本の1つでしょうか。
Office検定みたいなやつの Excelエキスパートでも出題されます。
配列数式を使うことで実現できます。


>セルA1に最も近く、A1よりも高い数値を選ばせたいです
 数式バーに以下数式を入力し
 =MIN(IF(B1:F5>A1,B1:F5))
 Shift+Ctrl+Enter で配列数式として入力されます


>A1に最も近く、A1よりも低い数値を選ぶ式
 =MAX(IF(B1:F5<A1,B1:F5))
 を同様に配列数式として入力すればOKです。


あまりデータ数が多い場合は再計算で重くなるので
対象のセルが数百万個を超える場合はマクロ化させた方が良いかもしれません。

Q車番順に平均値を計算したい

  画像の上の表は車番と計量値のデータです。
同じ車番が2回とか3回連続しているときは2回又は3回計量して1車分になりますし、1回の時は1回の計量で1車分です。
行方向の車番は1500行程度、列方向の計量値は50列程度のデータ表です。
この表から画像の下の表のように、車番毎に計量値の平均を求めたいのです。
上のデータ表が大きいので平均値の表は別のシートが良いと思います。
ここで大切なのは、同じ車番 (例では123と987)が間に違う車番を挟んで2回出てきていますが、この場合には同じ車が折り返してきて次の出荷をしているのですから、それぞれ別に平均値を求めて上の表のA列に出てくる車番順に並べて欲しいのです。
これをエクセルで実行させたいのですが、どうもマクロをを使わないと出来ないようなので良い方法を教えて下さい。
ちなみに私はマクロはほとんど分からないのでこれから勉強します。

Aベストアンサー

こんにちは。

前の質問と同じ内容だと思いますが、前回の質問の方に追記しておきましたので、ご覧ください。
 http://oshiete1.goo.ne.jp/qa4975510.html

Qアセンブラ言語の数字を数値に変換するプログラム

LD GR3,GR1 ;GR3にGR1の数字を入れる。
AND GR3,=#000F ;数字を数値に変換

というアセンブラのプログラムがあったのですが、なぜGR3と16進数#000Fの論理積をとることで数字を数値に変換できるのでしょうか。

それと、ここでいう数字、数値の違いとは、数字の1はコンピュータ上では
49という数値に変換される(アスキー文字)という認識でよろしいでしょうか。

Aベストアンサー

2進数で表したときの下4桁だけが残ることになるからです。

アスキーコードでは、数字の「1」は、10進で49、16進で31です。
16進の31を2進数に直すと、0011 0001です。
これと16進のOF、つまり2進の0000 1111と論理積をとると、0000 0001となり、数値の1になります。

Qマクロ「A1の値は、セル範囲でA1:AB39の右2文字が YR と書いてあるセルの右隣の値」

よろしくお願いします
いつもgooの皆さんに大変お世話になっています
エクセルは2013です

マクロで
「A1の値は、セル範囲でA1:AB39の値(文字列)の右端2文字が YR と書いてあるセルの右隣の値」
はどういうコードになるでしょうか

例えば セル D10 の値(文字列)が、「2月合計yr」でしたら
セル A1 には 右隣のセル E10 の値を表示したいのです

右2文字は Ucase(Right(セル,2)) ですが
「セル範囲A1:AB39で、そのセルの右端2文字がYRと書いてあるセルの右隣のセル」を
探す方法が分かりません

Aベストアンサー

本来、以下は省略して書くことが多いのですが、明示的に書かせていただきます。

Ucase(Right(セル,2)) ->MatchCase:=False
全角半角の違いは、MatchByte:=False
末尾のyr を探すのは、What:="*yr"  (LookAt:=xlWholeも必要)
現在のコードは1回限り After:=Range("A1") 続けるなら、ActiveCell

私は、ここのカテゴリでは、質問者さんから、答えだけ書いてりゃいいのだ、というので、みなさんから評判が悪いようです。
どなたかの回答をお待ちになっても良いかと思います。

'//
Sub SearchChars()
 Dim c As Range
 With Range("A1:AB39")
 Set c = .Find( _
  What:="*yr", _
  After:=Range("A1"), _
  LookIn:=xlValues, _
  LookAt:=xlWhole, _
  SearchOrder:=xlByRows, _
  MatchCase:=False, _
  MatchByte:=False)
    If Not c Is Nothing Then
     c.Offset(, 1).Value = Range("A1").Value
    End If
 End With
End Sub
'//

本来、以下は省略して書くことが多いのですが、明示的に書かせていただきます。

Ucase(Right(セル,2)) ->MatchCase:=False
全角半角の違いは、MatchByte:=False
末尾のyr を探すのは、What:="*yr"  (LookAt:=xlWholeも必要)
現在のコードは1回限り After:=Range("A1") 続けるなら、ActiveCell

私は、ここのカテゴリでは、質問者さんから、答えだけ書いてりゃいいのだ、というので、みなさんから評判が悪いようです。
どなたかの回答をお待ちになっても良いかと思います。

'//
Sub SearchChars()
 Dim c...続きを読む


人気Q&Aランキング

おすすめ情報