質問を失礼致します。お助け下さい。
仕事でExcelの関数を使用して業務の快適化をすることになりました。
新人だからと任されましたが、学生時代からExcelの操作をあまりしなかったため、関数を扱えきれず、調べても理解ができないので質問させていただきます。
Excelで、例えば、A1~A10まで数字が1と3交互に入っていたとします(A1セルに1、A2セルに3、A3セルに1.....)。その時、上から足し算をして、合計が5以下(最大で)になった時にB列に値を表示する関数のやり方は、ありますでしょうか?
この場合、A1(1).A2(3).A3(1)セルの合計が5なので、ここで一区切り、次はA4(3).A5(1)セルの合計が4で一区切り.....というような形が理想です。
お教え下さい。よろしくお願い致します。
No.1
- 回答日時:
こんにちは
ご質問の意味を正しく理解できているかわかりませんが…
B1セルに以下の式をいれ
=IF(SUM(A$1:A2)-IF(ROW()=1,0,SUM(OFFSET(B$1,,,ROW()-1)))>5,SUM(A$1:A1)-IF(ROW()=1,0,SUM(OFFSET(B$1,,,ROW()-1))),"")
下方にフィルコピーでいかがでしょうか?
1行目と、2行目以降の式を別に分ければもっとコンパクトな式にできます。
全部を同じ式にしたために、自分より前の行を参照する際に、1行目がエラーになるのを回避するために式が長くなってしまっています。
No.2
- 回答日時:
ご質問者がおっしゃる
>A1~A10まで数字が1と3交互に入っていたとします
という表現から想像できるA列の内容は
(1)A1から1,3,1,3,1,3,1,3,・・・・・となるパターン
(2)A1から3,1,3,1,3,1,3,1,・・・・・となるパターン
の二種類しかないと思います。(ご質問者の想定が、これと異なる場合はコメント等で追記願います)
だとすると、B列のパターンも二種類しかなく、
(1)B3が5、B5から以下一行おきに4を繰返すパターン
(2)B2から以下一行おきに4を繰返すパターン
となり、いずれの場合も、ある行以下では4を一行おきに繰返すというものになってしまいます。
こうなると数式というよりオートフィルで足りる話になり、どうもご質問者の真意を理解できていない気がします。
当然 fujillinさんの数式を利用しても、上記(1)(2)の結果が返るのですが、パターンを判別するだけでよいのでB1に
=IF((ROW()=1)+(MOD(ROW()+($A$1=1),2)),"",4+(ROW()=3))
と言う簡単な数式を記述し、下方向へコピーでも対応可能です。
しかし、前述のとおり、これだと、ご質問者の真意と異なる気がするので、ご質問者の意図するところが本当に上記(1)(2)でよいのかコメントいただきたいと思います。
No.3
- 回答日時:
No1です
>いまいち反映されないようで
私の環境では反映されているようです。
(No2様の環境でも反映されている模様です)
質問者様の環境が違うのか、私がご質問の意味を取り違えているのでしょうね。
No.4ベストアンサー
- 回答日時:
>A列には、1.3が交互ではなく、様々な数値が入ります。
その中で、上から足し算をし、>一定の値を超えないように区切って行きたいということです。
ということのようですので、その主旨に沿って数式を考えてみました。
添付画像をご覧ください。
まず、作業列を用意します。本当に必要な作業列は「A列の上からの合計値が最大値を超えたか」という「合計値>最大値」という表題のD列です。
しかし、これだけでは判り難いので、計算上必要ではないのですが、判り易くするため「A列の上からの合計値」を「合計値」という表題のC列と、ご質問者のいう「区切っていきたい」を実現するための「グループ番号」という表題のE列を表示してあります。
ここで、ご質問者のいう「一定の値」をG1に入力しておくことにします。
さらに、前提条件として、A列に入力される数値は「一定の値」以下の数値であるとします。
添付画像のように、D2に
=IF(SUM(C1,A2)>$G$1,1,0)
という数式を記述し、下方向へコピーし、A列の上からの合計値が最大値を超えたら1を、そうでなければ0を返すようにします。
B列に何を表示するのかという問題はありますが、せっかくE列のグループ番号も表示しているのでこれを数えてグループ内データ件数を表示してみます。B2に
=IF(D3<>1,"",COUNTIF($D$2:D2,1)+1&"グループのデータ数は"&COUNTIF(E:E,E2)&"個です")
という数式を記述し、下方向へコピーし、各グループの最終行かどうかを判定して、最終行なら「指定した内容」を表示するようにしてみました。
ご質問者のご希望が、A列の上からの合計値が一定の値を超えないようにクループ分けし、そのグループに何らかの値を表示するというものだと解釈したからです。ご質問者の真意と一致していれば幸いです。
No.5
- 回答日時:
No.4です。
>もう一度打ってみたら、反映することが出来ました。
>また、欲しい操作をすることが出来ました。
とのことで解決おめでとうございます。
B列に表示させるのが、一定の値を超えないA列の上からの合計値ならば
前回回答のB2に記述する数式を
=IF(D3<>1,"",C2)
とすれば、同様の結果になると思います。
質問内容を汲み取って下さり、また、丁寧なご説明、ありがとうございました。
1つの関数でまとめるか、貴方様が教えてくださったセルを分けて記載するかを検討させていただきたいと思います。
関数が楽しいと思えました!
大変勉強になりました。
本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
- Excel(エクセル) エクセル・セルに数式を入力してセル指定計算 2 2023/04/21 12:46
- Excel(エクセル) Excelの空文字判定について 7 2023/01/06 13:25
- Excel(エクセル) 至急です><Excelの関数を教えてください。 2 2022/03/22 17:56
- Excel(エクセル) エクセルでIF関数中にIFERROR関数を使いたいのですが???? 5 2022/04/08 13:24
- Visual Basic(VBA) 顧客ごとに違う点検案内を作成するマクロ 4 2022/09/16 05:34
- Excel(エクセル) Excel 特定セルの数値を参照したセルの0表示が空白にならないのはどうしてか? 3 2022/04/28 22:23
- Excel(エクセル) エクセル関数についてお教えください 3 2023/07/24 12:33
- Excel(エクセル) エクセルVBAでセルに表示されているとおりの数値を取得したい(時間の計算結果) 1 2022/03/30 17:52
- その他(Microsoft Office) Excelで時間計算(負) 8 2023/02/26 05:47
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル初心者です 関数の入れ...
-
Microsoft1Officeの互換ソフト...
-
Excel ピボットテーブルで日付...
-
エクセル関数を教えてください
-
【マクロ】その時、その時で変...
-
【マクロ】読取専用のファイル...
-
LOOKUP関数を使えばいいのでし...
-
エクセル 白黒印刷で白線を印刷...
-
【関数】先頭だけにある、半角...
-
【関数】適切な文字数の数字を...
-
Excelのチェックボックスの使い...
-
エクセルでの作業計算方法について
-
Excelのpivotについて質問です
-
WPS OFFICEでの縦書きについて
-
時間によってファイル名が変わ...
-
エクセルのセルに同じ大きさの...
-
Aというブックの1というシート...
-
エクセルの順位別一覧表の自動...
-
西暦や和暦の表示をyyyymmdd表...
-
【マクロ】エクセルにかいてあ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
[関数得意な方]教えて下さい・...
-
Excelにてある膨大なデータを管...
-
[関数について]わかる方教えて...
-
Excel初心者です。 詳しい方、...
-
excelの不要な行の削除ができな...
-
エクセル関数に詳しい方教えて...
-
INDIRECTを使わず excelで複数...
-
[オートフィルタ]で抽出された...
-
エクセルの神よ、ご回答を! エ...
-
エクセル関数に詳しい方、教え...
-
各ページの1番上の表示について
-
Excelで写真のような表を作った...
-
エクセルで不等号記号(≠)が上に...
-
数学 Tan(θ)-1/Cos(θ)について...
-
Excel 2019 は、SPILL機能があ...
-
Excelで全角を半角にしたいので...
-
条件付き書式を教えてください
-
Excel フィルターを掛けた状態...
-
[オートフィルタ]の適用範囲の...
おすすめ情報
ご回答、ありがとうございます。
教えていただいた式を入れて見ましたが、いまいち反映されないようで.....1行目と2行目を分けるコンパクトの式とは、どのようなものでしょうか?
差し支えなければ、教えて頂きたいです。
よろしくお願い致します。
ご回答いただき、ありがとうございます。
goomania様がおっしゃる通り、私の質問の仕方が不明確でした。
A列には、1.3が交互ではなく、様々な数値が入ります。その中で、上から足し算をし、一定の値を超えないように区切って行きたいということです。
ご回答頂いた内容も、今後ぜひ活用させていただきます。ありがとうございます。
もしよろしければ、上記の内容を踏まえたお考えを教えて頂きたいです。よろしくお願い致します。
最初に教えていただいた式ですが、私の入力方法に誤りがありました。もう一度打ってみたら、反映することが出来ました。また、欲しい操作をすることが出来ました。
本当にありがとうございます。