出産前後の痔にはご注意!

EXCELにおいてDOY(Day of Year)を求めたいです。
DOYとは、例えば、1月30日なら30、4月30なら120というふうに。
ここまでならネットにもやり方がのっているのですが今回は1月1日を基準に12月1日は-31、11月30は-32というふうに1月前を-という感じで表記したいのですが、なにかいい方法はありますか?

A 回答 (5件)

対象の年の前年の12月31日を引けばいい。


そんだけ。

Excelの日付けは「シリアル値」になっています。
1900年1月1日 0時0分 が「1」
1900年1月2日 0時0分 が「2」
・・・
2018年11月27日 0時0分が「43431」
となっています。
従って、前年の12月31日のシリアル値を引けば、その年の日数になります。
ただしセルの表示形式を「日付」ではなく「標準」や「数値」にすることを忘れないでください。

A1セルに日付が入力されているなら

 =A1-(DATE(YEAR(A1)-1,12,31)
 =A1-((DATE(YEAR(A1),1,1)-1)
 =A1-(DATE(YEAR(A1)-1,1,1)+1

こんなんで十分。
    • good
    • 0

'

「EXCEL」の回答画像5
    • good
    • 0

>1月1日を基準に


この場合の基準年は、参照する日付に対して常に翌年の1月1日と
なるのですか?
どのようなことを望むのかを具体的にしたほうが、希望の回答が
得られるのでは。

とりあえず、こちら↓が翌年の1月1日とした場合です。
 =DATE(YEAR(A1)+1,1,1)-A1
これとは違うことを望むのなら、基準を正しく提示して下さい。
    • good
    • 0

単に、


対象年月日-基準年月日
でよいと思います。

基準年月日は、対象月を検証し、以下のようにすればよいと思います。
基準年月日=DATE(対象年-1*(対象月<12)、12、1)

この「12」を変えれば、任意の基準月1日が設定できます。
    • good
    • 0

1月1日を基準にしたら、12月1日は335日とかじゃないですかね。


あなたが言っているのは、2018年1月1日を基準とする、と、基準となる『年』が含まれるわけですよね。

そしたらその2018/1/1を基準とした算数をすれば済みます。
A1に日付が入っているとしたら
=IF(A1-DATE(2018,1,1)+1>0,A1-DATE(2018,1,1)+1,A1-DATE(2018,1,1))
    • good
    • 0

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

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

Qエクセルについて。

次の数式を求める関数(下の方のプラン表)は、どんな数式を打てば良いのでしょうか?教えていただけると幸いです。

Aベストアンサー

単純な足し算ですよね。
添付画像のように作ったとして

[C8]=SUM($B$2,C$7,$B8)

これを[C8:F12]の範囲にコピーすればOK。

通常、数式のセルは、コピー貼り付けすると、移動先に応じてセルアドレスが変わってしまいますが、
「$」をつけることで、固定することができます。

上の式だと、どこに移動しても

$B$2 は B2 を参照するように固定される。

C$7 は 7行目 を参照するように固定される。
(式を下にコピーしても、7行目に固定される)

$B8 は B列 を参照するように固定される。
(式を右にコピーしても、B列に固定される)

ということになります。
$をつけて参照先を固定するのを「絶対参照」、
つけていない普通の場合は「相対参照」、
と言います。
より詳しいことは、このキーワードで検索して調べてみてください。

金額表示については、セルの書式から、
分類:通貨
記号:\
にしてあります。
実際のセルに「\」は入力されていません。

Q単価別売上合計の求め方

初心者です。わかる方入れば教えてください。

単価別の売上合計を出したいのですが関数で可能でしょうか?

シート1:O列→それぞれの商品の売上
シート1:K列→それぞれの売価

シート:集計(価格別)
A列、B列
1000 2000 →(1000円以上:2000円未満)
2000 3000 →(2000円以上:3000円未満)
3000 4000 →(3000円以上:4000円未満)の意味で記入されています。

この時、「シート:集計(価格別)」のC列にAB列の条件に当てはまるシート1の商品の売上合計を求めたいのですが可能でしょうか。

Aベストアンサー

ピボットテーブルを使ったやり方を紹介します。

データは1行目から記載されているとして説明します。
また、P列を作業列として使用します。

◆手順
1.見出し行を作成します。1行目からデータがある場合は行を挿入する。O1セルに『売上』、P1セルに『売価』と入力する。
2.P列に売価の代表値を書く。今回の場合は、1000~2000→1000、2000~3000→2000、・・・とする。数式はP2セルに『=ROUNDDOWN(F2/1000,0)*1000』を入力して下方向にコピペする。
3.O~P列を選択して、メニュー → 挿入 → ピボットテーブル とする。
4.別ウィンドウがでるが、作成先を新規ウィンドウにして『OK』をクリックする。
5.添付図の⑤のようにドラッグ&ドロップする。
6.添付図の⑥のように、『売上』を左クリック → 値フィールドの設定 → 別ウィンドウが開く → 選択したフィールドのデータ『合計』を選択 → OK
7.完成

Q旅行案内の背景と、飛行機の形について。

旅行案内の説明の後ろの背景と、飛行機の下ががたがたしているのはどうやって作ったのでしょうか?
教えていただけると幸いです。
https://oshiete.goo.ne.jp/qa/10835060.html

Aベストアンサー

No.1の回答者です。
何かの問題集を解いているのですよね。

その問題を出している方に、画像の提供や参照先を訊いたら。
飛行機の画像に雲があるだけなので、なにも工夫していないと思う。
ペイントでも何でもよいので、青い背景に飛行機を描き、雲も描けば
同じようなものは作成できます。
Excelはお絵かきソフトではないので、わざわざ作る人はいない。
図形機能で複雑なクリップアートを作る人たちもいるけど、そこまで
するほどの作図ではないですし。

> 飛行機の写真の形を作る方法
下側の凸凹部分が気になっているようだけど、No.1の回答に添付した
画像にあるように、白い雲があるだけですよ。
用紙の白い部分と白い雲が重なって凸凹を作っているだけですからね。

説明文の背景も、[挿入]→[オンライン画像]→[テクスチャ]で探します。
似たような画像を挿入したら、色をウォッシュアウトなどで薄くして、
背景として利用します。

Q非表示のセルに値が入っているか検出したい

お世話になります。

VBAを使用せずに、セル関数だけで実現したいと思っています。

1行目が非表示の状態で、
 A1セルに文字が入っていればB2セルに"有り"
 A1セルに文字が入っていなければB2セルに"無し"
1行目が表示の状態で、
 A1セルに文字が入っていればB2セルに"有り"
 A1セルに文字が入っていなければB2セルに"有り"
と表示させたいのですが可能でしょうか。

"有り""無し"の文字にはこだわらず、セルを赤色とかになってもいいので
VBAを使用せずに、
非表示のセルに文字があるか、ないか
表示セルに文字があるか、ないか
を検出したいのです。

何とぞよろしくお願い申し上げます。

Aベストアンサー

ごめん。
なぜ
> A1セルに文字が入っていなければB2セルに"有り"
とする必要があるのか自分には理解できないので、
 「非表示のセルに値があるかを表示する」
を目的としてアドバイスしてみます。

COUNTA関数でセルに入力されている値の数を数えることができますね。
これは行や列が非表示でも数えます。
SUBTOTAL関数は非表示のセルに対して集計を行いません。
すなわち、

 COUNTA関数が返す値

 SUBTOTAL関数でCOUNTA関数相当の集計をした結果
が等しくなければ
 非表示のセルに値が存在する
と判断できます。

 =IF(COUNTA(A1)=SUBTOTAL(103,A1),"無し","有り")

となりますが、行表示させているときに”有り”/”無し”表示はおかしな話です。
B1セルにダミーの値を入れておき、それをSUBTOTAL関数で集計し、非表示かを判断させるという方法で対処してみましょう。
ついでに質問文にあるよく分からない判定に合わせてみます。

 =IF(SUBTOTAL(103,B1)=1,"有り",IF(COUNTA(A1)=SUBTOTAL(103,A1),"無し","有り"))

ベタな方法で処理しましたので、もっとスマートな方法があるかと思います。
でも面倒なのでパス。
そこは質問者さん自身で精査して調整してください。
考え方は示しましたので、ご自身で判断と調整ができると思います。

ごめん。
なぜ
> A1セルに文字が入っていなければB2セルに"有り"
とする必要があるのか自分には理解できないので、
 「非表示のセルに値があるかを表示する」
を目的としてアドバイスしてみます。

COUNTA関数でセルに入力されている値の数を数えることができますね。
これは行や列が非表示でも数えます。
SUBTOTAL関数は非表示のセルに対して集計を行いません。
すなわち、

 COUNTA関数が返す値

 SUBTOTAL関数でCOUNTA関数相当の集計をした結果
が等しくなければ
 非表示のセルに値が存在する
と判断で...続きを読む

Q飛行機の形について。

飛行機の写真の形を、下を白い雲の形にするには、どうすれば良いのでしょうか?教えていただけると幸いです。
https://oshiete.goo.ne.jp/qa/10845425.html

Aベストアンサー

あなたは、回答者の名前などいちいち覚えていないのかな?
あちこちで同じ質問を繰り返しているから、混乱するのですよ。
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12199512557
回答の内容を試して、理解できない部分だけを補足すれば、的確な
回答も得られるでしょうに。(まぁ、無理だと思うけど)
https://oshiete.goo.ne.jp/qa/10845425.html
他の掲示板の回答内容を、お礼欄にそのまま書き、その内容を問う
のもどうかと思う。(私の回答内容を無視していると思えるから)
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12199512557

[透明色を指定]については、今回はありえないと思う。
飛行機自体の色にも雲の色と同じ色があるので、その部分も透明に
なってしまうから。だから無意味な回答ですね。
(他の回答者を批判するつもりはないが、混乱の元なので否定)
印刷されたものとして、白色は用紙の色を使い印刷されない部分と
なっています。ですから、雲の色は印刷されないので凸凹に見える
だけだってことを理解してください。

これ以上のやり取りは、無意味なので質問を閉じてくださいね。
私としても、そのほうが幸いです。

あなたは、回答者の名前などいちいち覚えていないのかな?
あちこちで同じ質問を繰り返しているから、混乱するのですよ。
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12199512557
回答の内容を試して、理解できない部分だけを補足すれば、的確な
回答も得られるでしょうに。(まぁ、無理だと思うけど)
https://oshiete.goo.ne.jp/qa/10845425.html
他の掲示板の回答内容を、お礼欄にそのまま書き、その内容を問う
のもどうかと思う。(私の回答内容を無視していると思えるから)
https://detail...続きを読む

Q万年カレンダーについて。

次のexcelのデータで、おかしなところがありましたら、教えていただけると幸いです。
https://fire.st/9Il0GsR

Aベストアンサー

>確かに35行は、緑になりました。どうしてそうなるのでしょうか?教えていただけると幸いです。
添付の画像を参照ください。
2018年6月の例ですが、C35へ
=COUNTIF(祝日,A35)
と入力しています。結果は、1048470が表示されます。
これは、=COUNTIF($Y:$Y,A35)と同じことです。(祝日の範囲がY列全体の為)
A35は空白なので、Y列の空白の部分がカウントされます。その為、1048470になります。
COUNTIF(祝日,A35)の結果が0でなければ、判定は真なので、色がつく条件式が成立します。
そのため、緑になります。

>すみません。COUNTIF 関数のみで、祝日に色をつけるとするとどうすれば良いのでしょうか?教えていただけると幸いです。
祝日の範囲を、空白を除いて、正確に定義しなおします。
一旦、祝日の名前を削除し、実際に祝日の日付が入力されているセル範囲Y3:Y107を、祝日の範囲にします。
(つまり、Y列全体をやめて、$Y$3:$Y$107にします)
そうすると、COUNTIF 関数のみで祝日に色をつけることができます。
祝日の名前を削除する方法は、下記を参照ください。(削除せず、変更することも可能です)
https://www.wanichan.com/pc/excel/2016/8/47.html

COUNTIF 関数のみで、祝日に色をつけるようにした場合は、祝日の追加が発生すると(2023年以降分の祝日の追加など)、Y列の範囲が変わるので毎回、それにあわせて、祝日の範囲もかえる必要があります。

>確かに35行は、緑になりました。どうしてそうなるのでしょうか?教えていただけると幸いです。
添付の画像を参照ください。
2018年6月の例ですが、C35へ
=COUNTIF(祝日,A35)
と入力しています。結果は、1048470が表示されます。
これは、=COUNTIF($Y:$Y,A35)と同じことです。(祝日の範囲がY列全体の為)
A35は空白なので、Y列の空白の部分がカウントされます。その為、1048470になります。
COUNTIF(祝日,A35)の結果が0でなければ、判定は真なので、色がつく条件式が成立します。
そのため、緑になります。...続きを読む

QIF関数について

A1~Z1の列の間に、特定の文字(たとえば”りんごの文字”)がセル内に含まれる場合(あかりんごなど)にその下のA2~Z2の列の間に記入された日付を抜き出す方法をご存知でしたら
どなたか教えていただけませんでしょうか、よろしくお願いします。

A2にあかりんごがあれば、B2の日付を抜き出そうとしています。

Aベストアンサー

では、HLOOKUP関数か、抜き出すのが日付ならSUMIF関数でもできるかと思います。

りんごを含む文字を検索値にする場合で、直接式にいれるなら「*りんご*」のようにしてください。

Q4142から653347と飛んでます。 これを4143からちゃんと並ぶにはどうすればいいでしょうか?

4142から653347と飛んでます。
これを4143からちゃんと並ぶにはどうすればいいでしょうか?

Aベストアンサー

これ、9から70に飛んでるよね。

①シート全体を選択
②どの行でもいいので右クリック
③再表示を選択

開いたかな?

Q月末の自動計算

月末火曜日の日付をスタートとして稼働日数を求めたいと思っています。

10月なら9/25~10/30まで
11月なら10/30~11/27まで
12月なら11/27~12/25までの日数を計算したいです。

月末水曜日になると当月の日数に自動で計算が切り替わるよう計算することは可能でしょうか。

わかる方がいれば教えていただきたいです。
※土日は日数に含んでOKです。

Aベストアンサー

No1です

>先程試したところ8と表示されるのですが11/28~今日までが8日という計算でしょうか?
はい。下に示しますように『今日』を対象に計算する式として作成してしまいましたので、12/5(=本日)は11/27(=最終火曜日)から数えて8日目という意味になります。
(シートが自動計算の設定になっていれば、明日になると9と表示されるはずです)

私の勝手な勘違いだったかもしれませんが、「今日が月末火曜日から何日目かを計算する」関数式として考えていましたが、対象が「今日」とは限らなかったのでしょうか?
その場合は、式中の「TODAY()」の部分を対象の日(=シリアル値)に置き換えればそのまま同じ計算が可能なはずです。
例えば、対象の日がA1セルに入力されているとするなら、TODAY()を全てA1に置き換えればよいといった感じです。

>ただ、水曜日になったら前日の火曜日分も含めて計算してほしいです。
翌日の水曜日を2日目と計算したいという意味でしょうか?
(No1の説明を読んでいただければわかりますが)現在の式は、水曜日は1(日目)と表示される式になっています。
修正したい場合は、No1の式より常に1日多い値になれば良いだけなので、式の最後に「+1」を加えれば、お求めの結果になると思います。

>とても複雑な回答で解読できなかったので教えていただけると幸いです
式は少々長いですが、全体としての構成は、単純にIFで場合分けした式になっています。
ご参考までに、大雑把な構成を言葉で示すならば・・・
『対象日(今日)がその月の最終火曜日より前なら、前月の最終火曜日からの日数を数え、後ならその月の最終火曜日からの日数を数える』
という式になっています。

No1です

>先程試したところ8と表示されるのですが11/28~今日までが8日という計算でしょうか?
はい。下に示しますように『今日』を対象に計算する式として作成してしまいましたので、12/5(=本日)は11/27(=最終火曜日)から数えて8日目という意味になります。
(シートが自動計算の設定になっていれば、明日になると9と表示されるはずです)

私の勝手な勘違いだったかもしれませんが、「今日が月末火曜日から何日目かを計算する」関数式として考えていましたが、対象が「今日」とは限らなかったのでしょう...続きを読む

Qエクセルで名前入力をしたら最新日付のデータを抽出したい

初めての質問になります。
よろしくお願いします。

タイトル通りの内容で(A1)に名前を入力したら、
その名前(D列3から300行)の最新の日付(E列3から300行)のデータ(U列3から300行)を
(B1)に抽出をしたいです。
尚、使用している日付は2018/12/5 のタイプの日付形式です。
※シート別けしておらず同一シートです。

A1 あああ(入力) B1 100(抽出データ)

D列 E列 データ
あああ 2018/12/5 100
あああ 2018/11/5 98
あああ 2018/10/5 45
いいい 2018/12/4 88
いいい 以下略 以下略
いいい
ううう
ううう
ううう

昔から簡単な作業はやってきたのですが関数?となるとどうも苦手で、
これから勉強していきたいと思ってます。
いろいろ触っていくとエクセルって楽しいですね!
本当は質問ではなく自己解決してみたいところではあるのですが、
苦戦しつつ3時間が経過・・・ちょっと泣けてきましたので質問させて頂きました。
質問もこんな形式で理解してもらえるかわかりませんがよろしくお願いします。

初めての質問になります。
よろしくお願いします。

タイトル通りの内容で(A1)に名前を入力したら、
その名前(D列3から300行)の最新の日付(E列3から300行)のデータ(U列3から300行)を
(B1)に抽出をしたいです。
尚、使用している日付は2018/12/5 のタイプの日付形式です。
※シート別けしておらず同一シートです。

A1 あああ(入力) B1 100(抽出データ)

D列 E列 データ
あああ 2018/12/5 100
あああ 2018/11/5 98
あああ 2018/10/5 45
いいい 2018/12/4 88
...続きを読む

Aベストアンサー

何度も済みません。
[No.2]用の添付図です。


人気Q&Aランキング