ウィンドウズ版のエクセル97を使ってます。
曜日指定の日付の入ったセルを作りたいのですが、セルの連続データのフィルハンドルでうまく行きません。簡単に出来る方法を教えて下さい。
具体例   2月 2日(土)
      2月 5日(火)
      2月 7日(木)
      2月 9日(土)
      2月12日(火)
      2月15日(木)
      2月17日(土)
        ・
        ・
        ・

このQ&Aに関連する最新のQ&A

A 回答 (6件)

#2の方に追加です。


セルの書式設定は m"月"d"日"(aaa)
として
A1セルから始めるとします。

A1に、1月31日を入力
A2に、+A1+2 (2/2)
A3に、+A2+3 (2/5)
A4に、+A3+2 (2/7)

として、A2からA4を選択して
フィルハンドルでOKだと思います。
A1は本当は必要ないのですが
計算式の関係で使っています。
    • good
    • 0
この回答へのお礼

ありがとうございました。未熟な私には、マクロはまだあまり理解出来ないので
適切な回答でした。エクセルを使いこなせないのでまた質問をした時は、宜しくお願い致します。

お礼日時:2002/02/07 20:23

#2 は日付書式の質問と勘違いしていました。

日付が飛んでいましたね。
質問の曜日間隔は例だと思いますので、自由に曜日指定できるようユーザー定義関数を作ってみました。

最初のセル(例えばA1)に最初の日付を入れます。
その下のセル(A2になります)に例えば =youbiFil(A1,"火","木","土") とします。

ユーザー定義関数の引数は、参照するセル、曜日サイクルです。
曜日サイクルは、『"火","木","土"』のように設定します。
『"月","火","水","木","金"』なら土日は出ません。『"土"』しか設定しなければ土曜日しか出しません。
3つ目の日付以降はフィルハンドルを引っ張れば出てきます。列方向もできます。


Public Function youbiFil(rgUp As Range, ParamArray myYoubi())
  '曜日のパターンを登録していなければ何もしない
  If UBound(myYoubi) < 0 Then
    youbiFil = "": Exit Function
  End If

  Dim yb As Integer '前のセルは指定した曜日サイクルの何番目?
  Dim maeYoubi As Integer '前のセルの曜日
  Dim curYoubi As String 'カレントセルの曜日
  Dim curDay As Date 'カレントセルの日付
  '最初の日付の曜日が、指定した曜日サイクルと違っていれば何もしない
  maeYoubi = -1
  For yb = 0 To UBound(myYoubi)
    If myYoubi(yb) = Format(rgUp, "aaa") Then
      maeYoubi = yb
      Exit For
    End If
  Next
  If maeYoubi = -1 Then youbiFil = "": Exit Function

  '前のセルの曜日の次は曜日サイクルのどこにあるか調べる
  If maeYoubi < UBound(myYoubi) Then
    curYoubi = myYoubi(maeYoubi + 1)
  Else
    curYoubi = myYoubi(0)
  End If
  '曜日が一致するまで日付を進める
  curDay = rgUp + 1
  While Format(curDay, "aaa") <> curYoubi
    curDay = curDay + 1
  Wend
  youbiFil = curDay
End Function
    • good
    • 0
この回答へのお礼

ありがとうございました。
未熟者なのでまた質問をした時は、宜しくお願い致します。

お礼日時:2002/02/07 20:29

再びRESです。

(No.3で回答)
回答No.4のkenken0001さんのが、正解です。

最終的にできれば良いと、未熟なマクロを投稿してしまいました。
それにしても、簡単にできますね。発想が大事ですね。
    • good
    • 0
この回答へのお礼

ありがとうございました。私は、未熟なのでマクロはよく理解出来きません。

お礼日時:2002/02/07 20:26

どうも簡単には出来ないようです。



ですが、マクロでできました。

まず、
例えば、セルA1に「2月1日」、セルB1に下記の式をコピペ(テキスト形式で)。 

=IF(ISNUMBER(A1)=FALSE,"",IF(WEEKDAY(A1)=2,"(月)",IF(WEEKDAY(A1)=3,"(火)",IF(WEEKDAY(A1)=4,"(水)",IF(WEEKDAY(A1)=5,"(木)",IF(WEEKDAY(A1)=6,"(金)",IF(WEEKDAY(A1)=7,"(土)","(日)")))))))

(もし、HTMLでコピペした場合はセルB1、B2、B3のセルの結合を解除)

セルの連続データのフィルハンドル

2月1日(金)
2月2日(土)
2月3日(日)
2月4日(月)
2月5日(火)
2月6日(水)
2月7日(木)
  ・
  ・
  ・

そして、マクロに下記のコードをコピペして、実行すれば、できます。

最初の日付の曜日のセルをアクティブにすることと最後の日付の曜日のセルの下のセルは空欄である必要があります。

Sub 火木土抽出()
'《条件》
'最初の日付の曜日のセルをアクティブにすること
'最後の日付の曜日のセルの下のセルは空欄

Dim i As Integer
Dim R As Integer
Dim C As Integer
i = 1
Do Until IsEmpty(Cells(i, 2).Value)
If ActiveCell.Value = "(火)" Then
ElseIf ActiveCell.Value = "(木)" Then
ElseIf ActiveCell.Value = "(土)" Then
Else
R = ActiveCell.Row
C = ActiveCell.Column
Range(Cells(R, C - 1), Cells(R, C)).Select
Selection.Delete Shift:=xlUp
Cells(R, C).Select
If ActiveCell.Value = "(火)" Then
ElseIf ActiveCell.Value = "(木)" Then
ElseIf ActiveCell.Value = "(土)" Then
Else
ActiveCell.Offset(-1, 0).Select
i = i - 1
End If
If ActiveCell.Row <> 1 Then
ActiveCell.Offset(-1, 0).Select
i = i - 1
Else
End If
End If
ActiveCell.Offset(1, 0).Select
i = i + 1
Loop
Range("A1").Select
End Sub
    • good
    • 0

セルに 2/6 と入力して、そのセルを選択して



セルの書式設定→表示形式→ユーザー設定で

 m"月"d"日"(aaa)

とします。あとはフィルハンドルを引っ張ります。
    • good
    • 0

こんにちは セルを分ければできそうです。



セルAに年月日をあらわす数字
例えば2/6を入力します。
(表示はセルの書式設定によって、お好みの
2月6日等へ変更します)

隣り合うセルBにWEEKDAYと言う関数を使い
セルAを参照します。

例えばB1ならWEEKDAY(A1)のように。

そうすると曜日を表す数字が返ってきますので
後はIF関数等で曜日を示す文字(”日”、”月”等)へ
変換すればよいと思います。

連続して作成したい時はコピーでセルを移動すれば
日にちに対応した曜日になるはずです。
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

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

Qエクセル プルダウンの作り方

お世話になります。
エクセルでプルダウンの作り方を教えていただけませんでしょうか?
住所を▼のボタンでクリックしたら【北海道,青森,秋田,岩手・・・】などの選択ができるようにしたいのです。
宜しくお願いします。

Aベストアンサー

メニューから「データ」、「入力規則」、「設定」で「入力値の種類」を「リスト」を選択します。
そうすると「元の値」という表示がでますので、そこで前もって作っておいたリストの範囲を指定します。
多くないのでしたら、そのままそこにカンマで区切って入力しても出来ます。

Qエクセルで 「月」と入れてオートフィルで火・水・木・・と連続データにで

エクセルで 「月」と入れてオートフィルで火・水・木・・と連続データにできますが、(月)のようにかっこ内で表示したものをオートフィルで(火)(水)(木)・・・のようにする方法はありますか。

Aベストアンサー

2つの方法があります。
(1)オートフィルに登録
オートフィルのデータは、
[ツール]→[オプション]→[ユーザー設定リスト]
で登録されています。
面倒ですが、ここに(月)、(火)、(水),...
と登録すれば、以後使えるようになります。

(2)表示形式の変更
右クリック→[セルの書式設定]→[表示形式]→[ユーザー定義]
で以下のように入力します。
"("@")" これで入力した文字の前後に( )が付きます。

Qエクセルでプルダウンメニューの作り方

  エクセルの画面で、よく三角形を逆さまにした形をクリックするといくつかメニューが出てき、どれかを選べるようになっていますが、その作り方を教えてください。
 会社で人事を担当していますが、三角形(プルダウンボタン)をクリックすると社員氏名一覧が表示され、そこから選択できるようにしたいのです。
 しばらく自力でいろいろやってみましたが、さっぱり見当がつかず、どうやればいいのか分かりませんでした。よろしくお願いします。

Aベストアンサー

こんばんは!
当方使用のExcel2003での一例です!

↓の画像のようにSheet2に名簿表を作成しておきます。
画像ではSheet2のA2セル以降を範囲指定 → 名前ボックスに仮に「名簿」と入力しOK
これで範囲指定したセルが「名簿」と名前定義されましたので、

Sheet1のリスト表示させたいセルを範囲指定 → メニュー → データ → 入力規則
→ リスト → 「元の値」の欄に
=名簿
としてOK

これでSheet1のセルをアクティブにすると右側に下向き▼が表示されますので、そこをクリック!
これで希望に近い形にならないでしょうか?
Excel2007の場合は↓のURLが参考になるかもしれません。

http://www.eurus.dti.ne.jp/~yoneyama/Excel2007/excel2007-ny_kis2.html

尚、同一Sheetに「名簿表」を作成する場合は名前定義する必要はなくて
「元の値」の右側の四角をクリックし、リスト表示したいセルをそのまま範囲指定すればOKです。

以上、お役に立てば良いのですが・・・m(_ _)m

こんばんは!
当方使用のExcel2003での一例です!

↓の画像のようにSheet2に名簿表を作成しておきます。
画像ではSheet2のA2セル以降を範囲指定 → 名前ボックスに仮に「名簿」と入力しOK
これで範囲指定したセルが「名簿」と名前定義されましたので、

Sheet1のリスト表示させたいセルを範囲指定 → メニュー → データ → 入力規則
→ リスト → 「元の値」の欄に
=名簿
としてOK

これでSheet1のセルをアクティブにすると右側に下向き▼が表示されますので、そこをクリック!
これで希望に近い形にならない...続きを読む

QExcelで 日付を 1つのセルの中で 「月/日 改行して(曜)」をオートフィルで表示させたい

Excelで 日付を 1つのセルの中で 「月/日 改行して(曜)」をオートフィルで
表示させる方法を教えて下さい。

セルの書式設定→表示形式→ユーザー設定でm/d(aaa)
を設定すると11/1(火)と1つのセルに入力して11/2(水)、11/3(木)・・・とオートフィルで連続した日付が出来ます。

更に、1つのセルの中で11/1→改行して(曜)と表示して連続させたいのですが上手く出来ません。
ご教示お願いします。

Aベストアンサー

書式設定の m/d(aaa) のdの後で「Ctrl+j」キーを押します。
配置タブの折り返して表示にもチェックを。

Qエクセル(Excel) 納品書の作り方【画像修正版

昨日http://oshiete.goo.ne.jp/qa/7348426.htmlで質問させていただき、詳しくご回答いただき少し進んだのですが、状況が変わったので改めて質問させていただきます。

■エクセル(Excel)で納品書の作成をしています。
シート1に納品書、シート2に商品マスタ(一覧)を作っていて、シート2の一覧を反映させて
納品書に番号を打ち込むだけで、商品名・単価までが出るシステムを作りたいのですが、
昨日のご回答の中の「VLOOKUP」?を入れて、自分なりにマス目の数字を変えてやってみたのですが
反映されずN/?のようなエラーになってしまいます。

※画像が見にくかったのでシート<CENTER></CENTER>だけにしました。

1、上記のように、シート2との関連付けの係数を、写真の場合の数字で教えてください。

2、合計と、合計から20%を引いた数値を割り出す関数も、写真の数字で御願いします。

宜しくご教授お願い致します。

Aベストアンサー

こんばんは!
前回投稿した者です。

当方もかなり古い(人間も古い!なぁ~んちゃって!)Excel2003を使用しています。
↓の画像のようにSheet2にデータを作成しておきます。

#N/A というエラーは、「検索値」がない!ということですので
お示しの画像のB列にSheet2のA列にないデータを入力するとそういったエラーが表示されます。

画像のセル配置ですと
C4セルに
=IF($B4="","",VLOOKUP($B4,Sheet2!$A:$C,COLUMN(B1),0))
(「$」マークの位置に気を付けてください)
という数式を入れD4セルまでオートフィルでコピー!
そのまま最後の24行目までコピーしておきます。

F4セルには
=IF(COUNTBLANK(B4:E4),"",D4*E4)
という数式を入れ、F24までオートフィルでコピー!

これでB列に商品番号を入力すればSheet2のデータが反映され、
E列に数量を入力でF列に金額が表示されると思います。

最後に合計金額のF26セルは
=IF(COUNT(F4:F24),SUM(F4:F24),"")
手数料のF27セルは
=IF(F26="","",F26*0.2)

これで何とか形にならないでしょうか?

※ 振込金額の欄は不明ですので手を付けていません。

参考になりますかね?m(_ _)m

こんばんは!
前回投稿した者です。

当方もかなり古い(人間も古い!なぁ~んちゃって!)Excel2003を使用しています。
↓の画像のようにSheet2にデータを作成しておきます。

#N/A というエラーは、「検索値」がない!ということですので
お示しの画像のB列にSheet2のA列にないデータを入力するとそういったエラーが表示されます。

画像のセル配置ですと
C4セルに
=IF($B4="","",VLOOKUP($B4,Sheet2!$A:$C,COLUMN(B1),0))
(「$」マークの位置に気を付けてください)
という数式を入れD4セルまでオートフィルで...続きを読む

Qexcelで「7月22日」と入ったセルに(月)を加えて「7月22日(月)」

excelで「7月22日」と入ったセルに(木)を加えて「7月22日(木)」にするのはどうしたら良いでしょうか?
修正しようとすると「2004/7/22(木)」に変わってしまいます。
既に入れてしまったセルがたくさんあるので入れ直すのは大変です。

Aベストアンサー

書式→セルで、「表示形式」タブで、分類をユーザー定義にして、種類の下のテキストボックスに

m"月"d"日"(aaa)

と書いてください。
他のセルに同じ書式を適用するには、
・指定済みのセルを選択し、Ctrl+Cでコピー
・適用したいセルを選択して、編集→形式を選択して貼り付け で、書式を選んで貼り付け

を行ってください。

Qエクセル(Excel) 納品書の作り方【改めて】

昨日http://oshiete.goo.ne.jp/qa/7348426.htmlで質問させていただき、詳しくご回答いただき少し進んだのですが、状況が変わったので改めて質問させていただきます。

■エクセル(Excel)で納品書の作成をしています。
シート1に納品書、シート2に商品マスタ(一覧)を作っていて、シート2の一覧を反映させて
納品書に番号を打ち込むだけで、商品名・単価までが出るシステムを作りたいのですが、
昨日のご回答の中の「VLOOKUP」?を入れて、自分なりにマス目の数字を変えてやってみたのですが
反映されずN/?のようなエラーになってしまいます。

※画像が貼り付けてあります。商品名は1番以外伏せさせていただいています。
くっつけてありますが、左側がシート1・右側がシート2です。

1、上記のように、シート2との関連付けの係数を、写真の場合の数字で教えてください。

2、合計と、合計から20%を引いた数値を割り出す関数も、写真の数字で御願いします。

宜しくご教授お願い致します。

Aベストアンサー

画像がいまいちよく見えないのですが、納品書の項目は左から、No、商品番号、商品名、単価、数量、金額でいいのでしょうか(名前は多少違っていても意味があっていればもんだいないです)

でしたら、
C1セルに=IF(ISBLANK(B2),"",VLOOKUP(B2,Sheet2!$A$2:$C$200,2,FALSE))
D1セルに=IF(ISBLANK(B2),"",VLOOKUP(B2,Sheet2!$A$2:$C$200,3,FALSE))
E1セルは空白で
F1セルに=IF(D2="","",D2*E2)
といれて、C1からF1までをコピーしてその下の行にタテに貼り付ければ出来ますよ。
おそらくエラーが出たのは、コピーしたときにVLOOKUP関数の最初のセルの指定がずれてしまっているのでは無いかと思いますよ。     

Qエクセル 平成22年2月1日~平成22年2月2日 と記載したい

書類に出張期間を記載しようとしています。
セルの都合上、ひとつのセルに表題のような表記をしなければなりません。

たとえば、以下のとおりです。

出張往路 2010/02/01
出張帰路 2010/02/02

上記、二つの日付セルからセルひとつで以下の表記をしたいです。

出張期間 2010/02/01 ~ 2010/02/02

このように表記させようと考え、次の式を考えました。
=B1&" ~ "&B2
このようにすると、 40210 ~ 40211
となってしまい、日付の表記ができません。
どのような式を入力すればよいのか教えてください。
セルの属性は日付型になっています。

よろしくお願いします。

Aベストアンサー

> 出力を和暦の記載

=TEXT(B1,"ggge年m月d日~")&TEXT(B2,"ggge年m月d日")

でOKです。

Qエクセル2007でプルダウンで選んだものに反応

Excel2007でプルダウンで選んだものに反応して隣のセルが自動入力される方法(エクセル2007)
A1をプルダウンで「猫」「犬」から選べるようにし、「猫」を選んだ場合B1に自動に「111」が、「犬」を選んだ場合B1に自動に「222」と入力されるようにしたいです。
ご教授の程、宜しくお願いします。

Aベストアンサー

VLOOKUP関数での方法です。
(1)別シートに入力文字列と対応コード表を作成。(仮にSheet2のA:B列範囲で順不同)
(2)B1に=IF(COUNTIF(Sheet2!A:A,A1),VLOOKUP(A1,Sheet2!A:B,2FALSE),"")を設定
   入力文字列が存在しない場合は空白としています。

Q例えば、8月1日~8月31日の“~”中にある日(8月15日など)を抽出したいです!

エクセル2003を使っています。

一つのセルに、『8月1日~8月31日』などと入力しています。
オートフィルターを設定しておいて、オプションの中で、例えば“8月15日/を含む”にした場合に、
先程の『8月1日~8月31日』の行が表示されるようにしたいです。
オートフィルターでできますか?オートフィルターでできないなら、どのようにすればできるでしょうか?

どうぞよろしくお願いします。

Aベストアンサー

#3です。

>切り出した後に、B2からC2間に含まれる日付を検索できるやり方はありますか?
>もちろんオートフィルターは使えないと思いますが・・・。

前の回答に書いていますが(#2さんも書いていらっしゃいますが)、開始日と終了日の隣のセルに求める日付が含まれているかどうかを判別する式を立てて、その列でオートフィルタをかける方法ではいけませんか。

#3で書いたことをもう少し詳しく書くと、
1)ワークシート上(例えばD1)に基準となる日付の入力欄を作る。
2)D2に=IF(AND(B2<=D$1,C2>=D$1),"○","")と入力して、以下適当な範囲まで(例えばD30まで)コピー。

以上で、D1に入力した日付に応じて、それが開始日と終了日の間に含まれる場合に○印が入るようになります。あとは、

3)D1:D30を範囲選択して、データ→フィルタ→オートフィルタ。

とすると、もしD2:D30の範囲に○印があれば、ドロップダウンリストの中に「○」と出てきますので、それを選択すると○印がある列だけが抽出されると思います。

もしおっしゃっていることを取り違えているようでしたら申し訳ありません。

#3です。

>切り出した後に、B2からC2間に含まれる日付を検索できるやり方はありますか?
>もちろんオートフィルターは使えないと思いますが・・・。

前の回答に書いていますが(#2さんも書いていらっしゃいますが)、開始日と終了日の隣のセルに求める日付が含まれているかどうかを判別する式を立てて、その列でオートフィルタをかける方法ではいけませんか。

#3で書いたことをもう少し詳しく書くと、
1)ワークシート上(例えばD1)に基準となる日付の入力欄を作る。
2)D2に=IF(AND(B2<=D$1...続きを読む


人気Q&Aランキング

おすすめ情報