• ベストアンサー

Excelにてセルを1列飛ばしで和を求めるには?

Excelにて50名のリスト表を作り、 1人に対して2列使い、一方に時給、一方に時間を入力しています。 例)   A  B   C  D   E  F  ...   CW      CX      CY  1  田中  山田   鈴木     時給最大 時給平均 時給最小 2 800 8  900 6  750 4.5     900      816     750 3 4 . . . (こんな感じで。) それを最後に和(実際はMAX、AVERAGE、MIN)を出したいのですが、 1つずつのセルをクリックしながらやっていくと、 最大30個までの数値入力しか出来ない為、 50人の和が取れません。 しかし、単価、時間が1列ごとに入力されているので、 1人目から50人目までをドラッグして A1:CV1みたいにつなぐ事も出来ません。 一つずつ+(プラス)でつないでその個数分で割るにしても、 空白箇所があったり、追記で空白が埋まった場合など 割る数値を変えるのも大変です。 何かいい方法はないでしょうか?

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

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

いつもは配列数式回答常連なのですが、既出ですので SUMPRODUCT関数で。 例データ B1:B10 3 1 2 3 4 5 6 1 3 偶数行の和は =SUMPRODUCT((MOD(ROW(A1:A10),2)=0)*(B1:B10)) 結果 10 件数は =SUMPRODUCT((MOD(ROW(A1:A10),2)=0)*1) 平均は 合計和/件数

guchi_yama
質問者

お礼

ご回答ありがとうございます。 なるほど、行数を出して2で割れば、偶数行だけ拾えるってことですか。 ROW() は行の場合で、列の場合は COLUMN() を入れればいいんですよね。 ありがとうございます。試してみます。

その他の回答 (7)

noname#140971
noname#140971
回答No.8

620___4____730___5___920___8.5___620 <--- =SMALL(A1:H11, COUNTIF(A1:H1, "<530")+1) 最低賃金とは、それより低い賃金で契約してはいけないと定められている賃金額です。 ですから、賃金列では、絶対にそれ以下の値は発生しません。 今、貴社の最低賃金が\530 だとすると、この値以下の入力は全て時間列になります。 ですから、時間の最大値の次の値が時間給の最小値ということです。 対象列は、一列置きに<最低賃金より上か下か>という属性を持っています。 この属性を利用すれば、事実上、一列飛びに集計できるということです。 ※普遍的に通じる方法じゃないですが、安直に結果を求める方法です。

guchi_yama
質問者

お礼

なるほどなるほど、そういう方法で1つ飛ばしが可能になる訳ですか^^ 配列数式というのはよく分からなかったのですが、 こちらは理解できました。 何度も付き合って頂きありがとうございました。 また何かありましたら、宜しくお願い致します。

noname#140971
noname#140971
回答No.7

まあ、割愛して帰るのも・・・ =SMALL(A1:C1, COUNTIF(A1:C1, "<10")+1) やはり、最低賃金を利用するということです。

guchi_yama
質問者

お礼

何度もご回答頂きありがとうございます。 一度試してみますね。 ところで、さっきも出てきた最低賃金ってなんでしょう...? まだまだ、勉強不足ですね;; じっくり調べてみます。 本当にありがとうございました。

noname#140971
noname#140971
回答No.5

最小を勘違いしていましたが、回答は割愛します。 基本は変わりませんので・・・。

noname#140971
noname#140971
回答No.4

さて、実際の Excel で作表してみました。 __________________従業員名__________________||_最大_||_平均_||_最小_|| ------------------------------------------------- ____田中_____||____山田____||___鈴木_______||    ||    ||    || ___800|___8.0||__900|__6.0|| ___750||__4.5||___900||___816||_____4.5|| ------------------------------------------------- 表の体裁をちょっと工夫すれば良いと思います。 縦に統合すればズズーッも可になります。 =MAX(A3:F3) =INT(SUMIF(A3:F3,">600",A3:F3)/COUNTIF(A3:F3,">600")) =MIN(A3:F3) 5、6行目も生成してズズーッとやってみましたがOKでした。 最低賃金というのがありますから、これでOKだと思います。

guchi_yama
質問者

お礼

細かく表を作っていただいてありがとうございます。 しかしながら難しくてまだ理解できていません;; すいません。 =MIN(A3:F3)で、A3からF3まで一度に囲むと 時間の一番小さい方の数値を拾いませんか? (試しもせずにこんな疑問を言って申し訳ないのですが...;;) でも、じっくり考えて1度試してみます。 ご回答ありがとうございました。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.3

次の方法は如何でしょうか。 尚、配列数式の為、入力完了時にshift+ctrl+enterキーを同時押下して下さい。 ■最大=MAX(IF(MOD(COLUMN(行範囲),2)=1,行範囲)) ■平均=AVERAGE(IF(MOD(COLUMN(行範囲),2)=1,行範囲)) ■最小=MIN(IF(MOD(COLUMN(行範囲),2)=1,行範囲))

guchi_yama
質問者

お礼

ご回答ありがとうございます。 少し入力してみたのですが、 シフト+コントロール+エンターをしてみても何も変わらないのはなぜでしょうねぇ;; まだじっくり試していないので、これから挑戦してみます。 本当にありがとうございました。

noname#52504
noname#52504
回答No.2

合計:=SUM(IF(MOD(COLUMN($A$2:$CV$2),2),IF($A$2:$CV$2<>"",$A$2:$CV$2,""),"")) 最大:=MAX(IF(MOD(COLUMN($A$2:$CV$2),2),IF($A$2:$CV$2<>"",$A$2:$CV$2,""),"")) 最小:=MIN(IF(MOD(COLUMN($A$2:$CV$2),2),IF($A$2:$CV$2<>"",$A$2:$CV$2,""),"")) 平均:=AVERAGE(IF(MOD(COLUMN($A$2:$CV$2),2),IF($A$2:$CV$2<>"",$A$2:$CV$2,""),"")) をそれぞれ配列数式として入力(Ctrl+Shift+Enter)すればOKです。 指定範囲について、 列番号を2で割った余りが1で、かつ空白でないならばその数、でなければ"" を返した配列全体について SUM,MAX,MIN,AVERAGEを取っています。 こんな書き方もできます。 =MAX(IF(MOD(COLUMN($A$2:$CV$2),2)*($A$2:$CV$2<>""),$A$2:$CV$2,"")) Excel2003で動作確認済

guchi_yama
質問者

お礼

ご回答ありがとうございます。 そもそも、自分自身が配列数式というものを分かっていないもので、 いまいち理解していません。;; 10個程度の表を作って何度かやってみたのですが、 答えが出ない状況です。 これからじっくり挑戦してみます。 本当にありがとうございました。

noname#42041
noname#42041
回答No.1

名前がA列、時給がB列、C列から右が毎日の時間にすれば解決しそうな気がしますけどいかがでしょうか?

guchi_yama
質問者

お礼

ご回答ありがとうございます。 また何かありましたら宜しくお願い致します。

関連するQ&A

  • EXCEL VBAである定数と列内の和が等しいものを抜き出す方法が知り

    EXCEL VBAである定数と列内の和が等しいものを抜き出す方法が知りたいです。 EXCELで    A 1 1000 2 800 3 700 4 300 ・ ・ ・ ・ ・ ・ のようにA列に降順で数値が入っているとき、A列のある数値の和が2000になる組み合わせの セルを求めたいのですが可能でしょうか? (上記の場合はcells(1,1)とcells(3,1)とcells(4,1)) よろしくお願いします。

  • エクセルでセル移動について

    エクセルのA1からD10の表に縦に数値を入力します。 各列によって空白のセルがあります。 A列の入力が終わればB1に、B列の入力が終わればC1に セル移動するにはどうすればいいでしょうか? (空白セルがあるため、Ctlキー+↑キーでは上手くいきません。) 教えて下さい。よろしくお願いします。  

  • エクセルで数式が入ったセルを空白にしたい。

    エクセルで数式が入ったセルを空白にしたい。 A1に"100"と言う数字、 B1はA1と同じ数値を自動入力させているので"=A1"という式が 入ってます。このB1の数式をB2からB10までコピーしているのでA2からA10に入力した数値が 反映されます。しかしA列にはいつも数値が入力されているわけではなく空白にする場合もあります。 でもB列の数式はコピーされてるので"0"が残ります。 そこですべて入力終了後にこのB列に自動で入力された"0"を削除したいのですが 置換で"0"にしても入ってるのは数値じゃなくて数式なので該当なしになるし、 数式も列ごとに移動されてるので一定ではありません。 この"0"を一括で削除するにはどうすればいいでしょうか? 入力範囲は500行まで及ぶのでいちいち"0"を探して削除するのが大変です。 分かりにくい質問ですいませんがよろしくお願いします。

  • エクセルで数式が入ったセルを空白にしたい。

    エクセルで数式が入ったセルを空白にしたい。 A1に"100"と言う数字、 B1はA1と同じ数値を自動入力させているので"=A1"という式が 入ってます。このB1の数式をB2からB10までコピーしているのでA2からA10に入力した数値が 反映されます。しかしA列にはいつも数値が入力されているわけではなく空白にする場合もあります。 でもB列の数式はコピーされてるので"0"が残ります。 そこですべて入力終了後にこのB列に自動で入力された"0"を削除したいのですが 置換で"0"にしても入ってるのは数値じゃなくて数式なので該当なしになるし、 数式も列ごとに移動されてるので一定ではありません。 この"0"を一括で削除するにはどうすればいいでしょうか? 入力範囲は500行まで及ぶのでいちいち"0"を探して削除するのが大変です。 分かりにくい質問ですいませんがよろしくお願いします。

  • EXCELでセルの内容を関数名にできないでしょうか?

    EXCEL2000を使用していますが、たとえばA1セルにSUMと入力されているとします。B1~B5まで数値があるとします。 たとえばB列の数値のB6に合計を出すときは、=sum(b1:b5)となりますが、このSUMの部分をA1セルの内容が利用できないものかと悩んでいます。 たとえば、平均を出したいときにA1にAVERAGEと入力すればB6に平均が・・最大値を表示したいならばA1にMAXをという具合にならないものでしょうか? 質問の内容が煩雑で申し訳有りませんが、よろしくお願いします。

  • Excelでの空白セルを除いた引き算

    Excel2007を使用しています。 A列にどんどん増えていく数値(増加量はランダム)が入力され、B列に1つ上の数値を引いた値を計算式で出したいのですが、A列にはたまに空白が入ります。 A列   B列 50    100     50 (←100-50) 160    60 170    10 (←170-160) 200    30 このような感じにしたい時にB列に入力する式が分かりません。 初歩的な質問かもしれませんが、よろしくお願いします。

  • 一個飛ばしのオートフィル

    一行目にA列からC列に数値が入っているとします。 2行目のA列にはA1のデータを、B2は空白セルで、C2にB1のデータ、D2は再び空白で、E2にC1のデータを... という風に、一個飛ばしで連続したデータを入れる時、オートフィルなどで簡単に入力する方法はないでしょうか? 説明がわかりにくくてすみません。 お分かりの方いましたら、よろしくお願いいたします。

  • Excel 空白セルのコピペについて

    http://imgur.com/5e8TsP1 上記図のように、シート1のB列に各文字を入力しています。 そして、A列にはもしB列に文字が入力されていたらID代わりの数値を表示する、という式を入力してあります。 次に、シート1のA列、B列をコピーして、シート2に数値としてペーストをします。 すると、A列は空白のはずが、xldown操作をすると元のセルで式が入力されていたものまで選んでしまい、真の空白セルとして認識してくれません。 そこで、このような例の場合、どうコピーペースト、または選択をすれば偽物の空白 セルを生み出さないように出来るでしょうか? 実際に使用するデータは項目名が多く存在し、マクロですべてのセルを選択→新規ブックを作成してそこにペースト、という処理を行っています。 この時に偽物の空白セルが出ると、データベースに読みこむ際に不都合が生じますので、何とか改善を図りたいです。 VBA、関数、Excel上のテクニックのいずれでも構いませんので、どうかご教授下さい。 よろしくお願いいたします。

  • エクセルでセルの列、幅の調整

    OS:XP Pro Excel Ver:2007 エクセルでとあるシートを作成中なのですが、 A列、幅:2.86(塗りつぶし) B列、幅:8.86(空白) C列、幅:0.33(塗りつぶし) D列、幅:8.86(空白) E列、幅:0.33(塗りつぶし)  ・  ・  ・ と言う風にして表を作りたいのですが、 2.86が2.88、8.86が8.88、0.33が0.31と強制的に修正されてしまいます。 行に指定した数値は修正されずに変更出来るのですが、、、。 幅を任意の幅で使用することは出来ないのでしょうか?

  • EXCELで式での空白セルの挿入方法

    A列は空白行で、B列は数値が入っていたり空白だったりする行で構成されています。 またC列からD列までの全ての行には数値が入っています。 この時A列に条件付き数式を入力して、B列が空白でなければB列に空白セルを挿入して現B列からD列を右にシフトさせたいのですが、数式で可能でしょうか? 数式で可能ならばA列に入力する式を、不可能なら参考のためVBAでの記述をお教え頂けると嬉しいです。(VBAはあまり理解しておりませんが。) 例 【処理前】 A列 B列 C列 D列 E列     22   33  44          55  66     77   88  99         100  101 【処理後】 A列 B列 C列 D列 E列 式       22  33  44 式       55  66 式       77  88  99 式      100  101 2万行の処理を1回のみしたいです。 宜しくお願いします。

専門家に質問してみよう