[[20250423121213]] 『奇数列日付、偶数列数値の際、対象日付に対応する』(ふわまる) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) |

| 全文検索 | 過去ログ ]

 

『奇数列日付、偶数列数値の際、対象日付に対応する数のみ合算』(ふわまる)

以前にも、質問させていただきました。
有給取得管理簿でまた躓いておりまして、相談があります。

A1に日付「2024/5/1」 B1に数値「1」C1に日付「2024/5/25」D1に数字「0.5」 のように日付と数字が交互に入力され1た行があり、80列あります。

BB1のセルに基準日「2024/6/3」と入力があり、

BB1の基準日より前の日付の右横の数字を合算

したい場合の関数が考えてもわかりません。

教えていただければありがたいです。

< 使用 Excel:Excel2010、使用 OS:Windows10 >


 偶数列の数値は、取った有給の日数ですか?
 だとすると最大でも2桁ですよね?

 >80列あります。
 CB列までだとして(途中に基準日?)

 =SUMIFS(B1:CB1,A1:CA1,"<"&BB1,A1:CA1,">10000")

 可能なら、1行目に日付、2行目を取得日数のように
 行を分けることをお勧めします。
 
(かんたんレシピ) 2025/04/23(水) 13:43:43

 >BB1の基準日
 BB列は偶数列ですよね?
 偶数列に日付が入っているんですか?
 
(かんたんレシピ) 2025/04/23(水) 14:00:08

説明が下手で申し訳ないです。

しかもBB1は80列の中にありますね…純粋に間違いました。

1/1〜12/31の有給取得状況を一覧にして管理したいです。

営業所|社員名|有給付与日|有給取得日|時間|有給取得日|時間|→以下計80列
東京|東京太郎| 2025/5/1| |2025/2/1 | 0.5|2025/4/2 |1.0 |→続く

営業所・社員名・有給付与日はすでに入力されていて、
毎月、出勤簿から有給取得日と時間を手入力で入力していきます。

有給付与日前の有給取得の合計時間と、有給付与日後の有給取得の合計時間を出したいです。

現時点で、かんたんレシピさんがご指摘いただいている、有給取得の日付と時間は2行にしていて、関数も
入れられているのでですが、営業所や名前はセルの結合をしている為に、フィルターで絞った時に、1行目の有給取得日を入力する欄しか表示されないので、横並びに時間を入力するようにしたほうが良いのかと思って、作り直そうかと思っているところです。

やはり同じ行に違う内容のデータは入れるべきではないでしょうか。
上手に関数が組めれば、1行でデータを管理できるので、良いかなと思いました。

何かご指摘ありましたら、いただけると助かります。

(ふわまる) 2025/04/23(水) 14:24:12


 有給付与日が「基準日」なんですか?
 それはどのセルなんでしょう?

 付与日がC2セル、それ以降のD2からCE2までが日付と時間のくり返しだとします。
 最初に回答した式と同じなんですが、試されましたか?

 =SUMIFS(E2:CE2,D2:CD2,"<"&C2,D2:CD2,">10000")

 >有給付与日前
 付与日は含みません。その前日までの合計です。
 
(かんたんレシピ) 2025/04/23(水) 15:02:12

返答ありがとうございます!

有給付与日が基準日です。
試したところ上手くいきました。

申し訳ありません。提示いただいていた関数を見た時に、「>10000」がまったく理解できなくて
何か勘違いされたのかな?と思って試していませんでした。

試して上手くいったものの、なぜこの関数で上手くいくのか、Chat-GPTに聞いても理解できませんでした。
もし、お手数でなければ教えていただけますでしょうか。

あまりにも無知すぎて、教える気にならなければ、回答なしでかまいませんので…

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

(ふわまる) 2025/04/23(水) 16:05:21


 >=SUMIFS(E2:CE2,D2:CD2,"<"&C2,D2:CD2,">10000")

 条件範囲 D2:CD2
 合計範囲 E2:CE2
 1列ずらすことによって、D2:CD2の値が条件を満たす時、
 その右隣の数値(E2:CE2)を合計することができます。

 ただし、D2:CD2は日付と時間のくり返しですから、
 条件を日付に限定しなくてはいけません。
 Excelの日付は、実際はシリアル値という整数だということはご存じでしょう。
「C2より小さい」だけではダメですね。時間との区別ができませんから。

 時間というのは最大でどれくらいなのでしょう。せいぜい2桁ですよね。
10000(シリアル値なら1927/5/18)より大きいという条件を付けることによって、日付と時間を区別しています。
 区別できれば何でもかまいません。
 100より大きいでも、最近の日付なら40000(2009/7/6)より大きいでも。
">10000" を ">2020/1/1"のように日付にしても同じです。

 ちなみに偶数列、奇数列で区別する場合ですが
 日付がD列からの偶数列なら
 =SUMPRODUCT(ISEVEN(COLUMN(D2:CD2))*(D2:CD2<C2),E2:CE2)
 でもいいかもしれませんね。
 奇数列なら ISODDです。
 
(かんたんレシピ) 2025/04/23(水) 19:29:15

 1行目は項目名で、日付の列には「有給取得日」と入力されているのなら、

 =SUMIFS(E2:CE2,$D$1:$CD$1,"有給*",D2:CD2,"<"&C2)

 でもいいかもしれません。
 
(かんたんレシピ) 2025/04/23(水) 20:41:49

詳しいご説明ありがとうございます!!

シリアル値はかろうじて知っていましたが、まさかそれとはっ。
そしてこんなに関数の入れ方があるとは思いませんでした。

どれも私では辿り着けなかった関数です。

ありがとうございました!
(ふわまる) 2025/04/23(水) 23:51:24


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.