万年カレンダーを作成する事になり以下の関数の解説を
しなければならなくなりました。。。
万年カレンダー作成者の説明では理解できず、
解説をしようにも出来ません。
その関数とやらがこれです。
=IF(MONTH(DATE($B$4,$B$5,1)+COLUMN()-COLUMN($F$7))=$B$5,COLUMN()-COLUMN ($F$7)+1,""
足りない頭で考えまくって出した答えが
「簡単に言うと、COLUMN関数は、【何列目であるか】を求める関数です。
【+COLUMN()-COLUMN($F$7)】これはDATE関数で求めた(年,月,日)がどの
場所からスタートするのかの基準を表します。
この場合、F列の7行目にDATEが始まる。ということになります。
その後に続く【=$B$5,COLUMN()-COLUMN($F$7)+1,""】は
左上の月の部分(今回であれば2月)に+1つきされると3月になるが、
その場合は表示しない。という意味になります。
因みに、【""】とは空欄(表示しない)という意味です。」
と解説したところ、全然違うとのこと・・・。
これ以上上手く説明出来る自信が有りません・・・・。
関数が得意な方、どうかお助け下さい!!!
No.5ベストアンサー
- 回答日時:
回答No.1ですが,解答で示した数式に誤記がありました。
訂正:
私ならF7に
=IF(MONTH(DATE($B$4,$B$5,COLUMN(A7)))=$B$5,DATE($B$4,$B$5,COLUMN(A7)),"")
と記入し,表示形式のユーザー定義で
d
を設定して使います。
ついでにF8に
=TEXT(F7,"aaa;;;")
を記入して,右にコピーします。
#参考
COLUMN(A7)
で,F列には「1」を計算します 右にコピーすることで,2,3,4…を計算します
DATE($B$4,$B$5,COLUMN(A7))
で,F列には年/月/1日を,G列には年/月/2日…をそれぞれ計算します
表示形式によって,その日付から「日」だけを表示します
MONTH(DATE($B$4,$B$5,COLUMN(A7)))によって,各列の年/月/日の月を計算し,それが所定の月ではない列では""を計算します
一つ下のセルでは,各年/月/日の曜日文字列を計算します。一つ上のセルで年月日を計算していない(空白を計算している)セルでは,空白にします。
失礼しました。
No.4
- 回答日時:
No.2・3です!
何度もごめんなさい。
No.3の説明に間違いがありました。
>COLUMN()-COLUMN($F$7) は
7-7 となり「0」ということになります
は
>6-6 となり「0」ということになります
が正解です。
結論としてはNo.3と同じコトになります。m(__)m
No.3
- 回答日時:
No.2です!
たびたびごめんなさい。
数式の説明のご質問だったのですね!
どうも失礼しました。
すでにNo.1さんがおっしゃっている通りなのですが、
COLUMN()は
数式を入れたセルの列番号にないますので、
F7に数式を入れた場合、
COLUMN()-COLUMN($F$7) は
7-7 となり「0」ということになります。
すなわち、DATE($B$4,$B$5,1)から「0」を加えると
数式を入れたセルは DATE($B$4,$B$5,1) そのものですので
2012/2/1
のシリアル値が表示されます。
それをオートフィルで右にコピーするたびに
COLUMN(G7)=8 column(H7)=9 ・・・となり
それからCOLUMN($F$7))=常に「7」を引いていますので
結論として、オートフィルするたびに「1」ずつプラスしていくことになります。
すなわち
COLUMN()-COLUMN($F$7) は COLUMN()-7
としても全く同じ結果になります。
※ お示しの数式は必ず最初に数式を入れるセル番地の列番号にしないと全く機能しない数式になります。
数式を少しにアレンジして
=IF(MONTH(DATE($B$4,$B$5,COLUMN(A1)))=$B$5,COLUMN(A1),"")
とすれば、どのセルに入力しても大丈夫だと思います。
どうも長々と失礼しました。m(__)m
No.2
- 回答日時:
こんにちは!
せっかく数式をお考えのようですが・・・
一例です。
シリアル値で操作し、表示形式のみを変える方法が何かと便利だと思いますので、
↓の画像で、B4セルの表示形式はユーザー定義から
0年
としておいて、数値のみ(2012)を入力
B5セルの表示形式もユーザー定義から
0月
としておいて月の数値のみを入力します。
F7セルの表示形式はユーザー定義から
d
としておき、
=IF(MONTH(DATE($B$4,$B$5,COLUMN(A1)))=$B$5,DATE($B$4,$B$5,COLUMN(A1)),"")
という数式を入れます。
F8セルは
=IF(F7="","",TEXT(F7,"aaa"))
という数式を入れ、F7・F8セルを範囲指定 → F8セルのフィルハンドルでAJ列までオートフィルでコピーします。
これでB4・B5セルの数値を入れ替えるだけで何とかご希望に近い形にならないでしょうか?
余計なお世話だったらごめんなさいね。m(__)m
No.1
- 回答日時:
F7以降でも,別にDATEが計算で出てきてるわけじゃありません。
1.「COLUMN()-COLUMN ($F$7)」を使い,F列以右に「ゼロから始まる1,2,3…」の数字を計算します
F列がゼロです。
2.COLUMN()-COLUMN ($F$7)+1を使い,F列以右に「1,2,3…」の数字を計算します
実際にF列に現れるのはこの部分です
3.「DATE($B$4,$B$5,1)+COLUMN()-COLUMN($F$7)」によって,指定年,指定月の1日にプラス「ゼロ,1,2…」を計算します
F列はDATE(年,月,1)の年月日日付のゼロ日後,つまり年/月/1日,G列は1日後,つまり年/月/2日を計算しています
4.それをMONTH関数で計算して月を出し,当月ではない日付の列では""を計算させています
関数の組み合わせを「内側から」順に紐解いて,ご自分の言葉で言い換えてみて下さい。
#ダメを出すなら関数を書いた人が解説すればイイと,端から見てると思いますけどね。
私なら
F列に
=IF(MONTH(DATE($B$4,$B$5,COLUMN(A7))=$B$5,DATE($B$4,$B$5,COLUMN(A7)),"")
と記入し,F7に書式メニューのセルの書式設定の表示形式のユーザー定義で
d
と設定して使います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Microsoft365で提供しているアプリ
-
会社PCのメールが更新されない
-
outlookのメールが固まってしま...
-
teams設定教えて下さい。 ①ビデ...
-
Windows 11で、IME言語バー(IM...
-
Microsoft Officeを2台目のPCに...
-
英数字のみ全角から半角に変換
-
Outlook で宛先が複数の場合の人数
-
【Excel VBA】PDFを作成して,...
-
Microsoft Formsの「個人情報や...
-
マクロ1があります。 A1のセル...
-
Officeを開くたびの「再起動メ...
-
Office 2021 Professional Plus...
-
会社のTeamsのことで相談です。...
-
【Excel】セル内の文字が正しい...
-
Excel テーブル内の空白行の削除
-
WindowsのPCで単純な勤怠管理を...
-
エクセルでレーダーチャートの...
-
【マクロ】違うブックのCallス...
-
Excel 日付を比較したら、同じ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
英数字のみ全角から半角に変換
-
outlookのメールが固まってしま...
-
会社PCのメールが更新されない
-
マイクロソフト 一時使用コード...
-
大学のレポート A4で1枚レポー...
-
Officeを開くたびの「再起動メ...
-
Microsoft Formsの「個人情報や...
-
one drive使えるpcを買う
-
マクロ自動コピペ 貼り付ける場...
-
PDFのハイパーリンクを自動的に変更し...
-
あらかじめ用意したテンプレー...
-
別シートの年間行事表をカレン...
-
【Excel VBA】PDFを作成して,...
-
エクセルでXLOOKUP関数...
-
office365って抵抗感ないですか?
-
ステータスバーの合計に表示さ...
-
【スプレドシート】IF関数の複...
-
Teamsで課題を提出します。 画...
-
Outlook で宛先が複数の場合の人数
-
Microsoft Officeを2台目のPCに...
おすすめ情報