No.6ベストアンサー
- 回答日時:
こんばんは!
>あるセルに西暦、あるセルに月を入れる事で自動生成されるもので、それはできているのです・・・
とありますので、一案です。
実際の配置がどのようになっているのか判らないので、勝手に↓のような感じにしてみました。
日付データの隣のセルに「曜日」のセルを設けます。
(画像でA列はシリアル値)
B5セル(セルの表示形式は aaa としておきます)に
=IF(A5="","",IF(WEEKDAY(A5,2)>=6,A5,TEXT(A5,"aaa")))
という数式を入れ31日のB35セルまでオートフィルでコピー!
結果の
D5セルに
=IF(COUNT($B$5:$B$35)<ROW(A1),"",INDEX($A$5:$A$35,SMALL(IF(ISNUMBER($B$5:$B$35),ROW($A$1:$A$31)),ROW(A1))))
これは配列数式になってしまいますので、Shift+Ctrl+Enterで確定!
この画面からコピー&ペーストする場合はD5セルに貼り付け後、数式バー内で一度クリック!
編集可能になりますので、Shift+Ctrlキーを押しながらEnterキーで確定!
数式の前後に{ }マークが入り配列数式になります。
これをオートフィルで下へコピーすると
画像のような感じになります。m(_ _)m
ありがとうございます!
これは・・・汎用性が高い、良い数式かも・・・。
私もそうですが、助かる方がたくさんいるんじゃないかと思います!
No.11
- 回答日時:
No.6です!
私の投稿が他の回答者様の混乱を招いているような気がします。
普通に考えれば休日(土日)のデータは必要ないはずですので、
他の回答者様が回答されていらっしゃるように
タイトルを額面通りに受け取れば、土・日曜を除いた日を抽出したいのではないかと思います。
当方の勘違いで
>土日だけを抜き出し別途一覧表にする・・・
は
>土日だけを抽出して一覧表にする!
という解釈で前回投稿しました。
実際は
>土日だけを除外して平日を別途一覧表にする!
というコトがご希望なのですよね?
そうであれば他の回答者様の回答で問題ないと思います。
尚、余計なお世話かもしれませんが、
前回の当方の画像を利用して同様の結果を出したい場合を載せておきます。
(前回アップした画像の配置と一緒という前提です)
B5セル(表示形式は aaa としておいて)に
=IF(A5="","",IF(WEEKDAY(A5,2)>=6,TEXT(A5,"aaa"),A5))
という数式を入れ31日目までオートフィルでコピー!
結果のD5セル(今回は配列数式ではありません)に
=IF(COUNT($B$5:$B$35)<ROW(A1),"",SMALL($B$5:$B$35,ROW(A1)))
という数式を入れオートフィルでずぃ~~~!っとしてはコピー!
こんなんではどうでしょうか?
※ 他の回答者様および質問者様へ! ※
どうも失礼しました。m(_ _)m
ありがとうございます。
いえいえ当初ので良いんです、まぎらわしくてすみませんでした。
そもそもの経緯は、
(1)西暦と月を指定する事で自動生成させる予定表をつくった(ここまではできた)
(2)他シートに土日含む休日一覧表をつくり、予定表の一致する行に網かけをしたい
(3)だから休日一覧表に土日を表示したい
という事だったんです。
やってみたら、土日だけの表を、抜けのないよう作るのって難しかったんです。
お騒がせしました。でもお一人お一人、とても参考になるご意見でした。
ちょっと急ぎ足でもありましたので、また改めて、全部見直させていただきますね。
とり急ぎお礼まで。
No.10
- 回答日時:
Sheet1セルA1に「年」、セルA2に「月」、セルB1に「日」を入れたと仮定して・・・
Sheet2のA列に「土」、「日」のみを返す式は・・・
Sheet2のセルA1 =IF(WEEKDAY(Sheet1!B1)=1,Sheet1!B1,Sheet1!B1+7-WEEKDAY(Sheet1!B1))
〃 セルA2 =IF(WEEKDAY(Sheet2!A1)=1,Sheet2!A1+6,Sheet2!A1+1)
〃 セルA3 =Sheet2!A1+7
の式を入れる方法もございます <(_ _)>
ありがとうございます。
そうですね、途中に作業表をかませて行く事で、わかりやすくはなります。
ある意味それがいちばんスマートかも知れないです。
No.8
- 回答日時:
回答3です。
シート1に月の日付がA3セルから下方に入力されているとします。そこで例えばF列を作業列としてF3セルには次の式を入力して下方にドラッグコピーします。
=IF(A3="","",IF(WEEKDAY(A3,2)>=6,MAX(F$2:F2)+1,""))
この式の意味ですがA3セルが空白なら空白にしなさい、そうでない場合にはWEEKDAY関数を使ってA3セルので日付が土曜日であるか日曜日であるかを調べなさい、WEEKDAY関数は引数に2が指定されていますので土曜日なら6の値、日曜日なら7の値になります、WEEKDAY関数の値が6以上の場合には、この式が入力されているのはF3セルですからF2からF2までの数値の最大値に1をプラスした数値を表示しなさい、という意味になります。
この式を下方にドラッグして例えばF5のセルでは例えばA5セルが土日であるならばF2(セル番地が絶対参照の形でF$2となっているので式を下方にドラッグしても行番号は変わりません)セルからF4(単にF2のセル番地ですと下方にドラッグすれば行番号が変わってF4になります)セルまでの最大値に1をプラスした数値を表示しなさいとのことになります。結果としてF列の上の行からA列で土日の行が何番目になっているかを表示することになります。
シート2ではその番号を利用してシート1のA列の日付を表示させることになります。
No.7
- 回答日時:
失礼、土日を抜いた日付を並べるんじゃなく、まだ土日だけを並べたいご質問の継続だったんですね。
(再掲)
シート1のA1に年を記入する
シート2のA1に
=IF(Sheet1!$A$1="","",MIN(FLOOR(DATE(Sheet1!$A$1,1,-1),7)+8,FLOOR(DATE(Sheet1!$A$1,1,0),7)+7))
を記入する
シート2のA2に
=IF(Sheet1!$A$1="","",MAX(FLOOR(DATE(Sheet1!$A$1,1,-1),7)+8,FLOOR(DATE(Sheet1!$A$1,1,0),7)+7))
を記入する
シート2のA3に
=A1+7
を記入し、以下コピーする。
ありがとうございます。
そうです。タイトルがまぎらわしかったですね、すみません。
土日だけを抽出したリストをつくりたいという事なんです。
FLOOR関数を使うというご回答が多いですね。
勉強になります。
No.4
- 回答日時:
#回答しても試してみることもしないご様子ですので、以後はもう回答しませんので悪しからず。
エクセル2003以前を使っているなら
シート1のA1に年を記入
シート2のA1に
=IF(AND(YEAR(DATE(Sheet1!$A$1,1,0)+ROW(A1))=Sheet1!$A$1,WEEKDAY(DATE(Sheet1!$A$1,1,0)+ROW(A1),2)<6),DATE(Sheet1!$A$1,1,0)+ROW(A1),"")
と記入、A366までコピー
シート1に戻って
=IF(ROW(A1)>COUNT(Sheet2!A:A),"",SMALL(Sheet2!A:A,ROW(A1)))
以下コピー
などのように作った方が簡単です。
ありがとうございました。
回答が言葉足らずでしたでしょうか、誤解されたら申し訳なかったのですが、前回ご回答いただいた時点で、試させていただいております。
ただ、自分のつくったものの都合で、他の方の回答の方が検証しやすかったため、そちらを重点的に使わせていただいておりますが、ご回答いただいた内容はひとまずいただきました。
かさねてお礼申し上げます。お気を害されたのでしたらすみませんでした。
No.3
- 回答日時:
分かり易く簡単な方法は作業列を作って対応することでしょう。
シート1に月の日付がA3セルから下方に入力されているとします。そこで例えばF列を作業列としてF3セルには次の式を入力して下方にドラッグコピーします。
=IF(A3="","",IF(WEEKDAY(A3,2)>=6,MAX(F$2:F2)+1,""))
そこでシート2のA3セル以降に土日の日付を表示させるとしたらA3セルに次の式を入力して下方にドラッグコピーします。
=IF(ROW(A1)>MAX(Sheet1!F:F),"",INDEX(Sheet1!A:A,MATCH(ROW(A1),Sheet1!F:F,0)))
A列を選択して右クリックして「セルの書式設定」から「表示形式」で「日付」から選んでOKします。
この回答への補足
ありがとうございます。
すみません、かさねて教えていただけたら幸いです。
入れ子の中のIFに、「日付の最初のセルに何か入っていて、それがしかも土曜か日曜にあたる時」を第一引数に設定しているのはわかるんですが、第二引数に設定されている部分が読み解けません。
ご解説いただければありがたいです。
No.2
- 回答日時:
恐らくは明日くらいに、前回のご質問(質問番号7759193、そのページのアドレス参照)に No.2 の回答が掲載されますので、そちらをご覧ください。
この回答への補足
「その年の最初の土・日、どちらか早い方」を取得する事を続けて考えてみたらですね、土曜を取得して+7ずらずら、日曜を取得して+7ずらずら、でもこの場合は良い訳ですね。それが一番簡単かな!?
補足日時:2012/10/21 18:18ありがとうございます。
Excel「その年の最初の土・日、どちらか早い方」
http://okwave.jp/qa/q7759193.html
の事だと思いますが、こちら、ご迷惑になるかと思い、早々にしめてしまいました。
こちらにご回答いただければ、私は見られますが・・・。
新しい質問を立てた方が良ければそういたしますが、今はとりあえずこのままにします。
かさねて本当にありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルの質問です。 F列からL...
-
作成した数式を値として表示し...
-
エクセルの文字が途中から消える
-
条件付き書式設定で罫線を引き...
-
Excel関数について教えてくださ...
-
Excelの警告について
-
Excel関数について教えてくださ...
-
ワークシートに出現したこの画...
-
エクセルのセル内に分数などの...
-
タイムスタンプとテキストから...
-
EXCELの散布図で日付が1900年に...
-
エクセルでファイルの最終更新...
-
シートの情報を別のシートへま...
-
マクロの処理が遅くなった
-
エクセルの数式バーのフォント...
-
エクセルの「条件付き書式」を...
-
エクセル日付 文字列の関数がエ...
-
Excelでの文字色
-
Excelの数字の前に入っている空...
-
Excelについて教えてください。...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelの警告について
-
Excelで数値を時間数に変換する...
-
エクセルの数式バーのフォント...
-
エクセルで数字の組み合わせを...
-
エクセルを使用して、円周率を...
-
Excelで特定の文字列が含まれて...
-
Excel 対象のセルに入力が無い...
-
任意の値が存在する行に名前を...
-
エクセルでファイルの最終更新...
-
index関数の説明をお願いします。
-
条件付き書式でやりたいのですが
-
重複しない値を取り出したい
-
【ExcelVBA】UTF-8(BOM無)でC...
-
【マクロ】マクロが割当てされ...
-
エクセル IF計算式?でしょうか?
-
エクセルで曜日を入れたい
-
表中の指定した条件の文字列を...
-
【Excel】版が同じ事を示す番号...
-
EXCELの散布図で日付が1900年に...
-
Excelについて。Excelに縦1列に...
おすすめ情報