これからの季節に親子でハイキング! >>

荷物の配送業務を担当しています。
単純な例で言いますと、A列には荷物名、B列には荷物の受領日、C列には発送予定日を入力します。
発送予定日は受領日から10日以内で行う事を原則としているため、作業者が10日以上の日付を入力する場合には、ポップアップで「日付超過」といったメッセージを表示したいです。(メッセージが表示されるだけで、日付が超過していても入力は可能としたいです)
条件付きや入力規則で設定できるのか、VBAで作らなければいけないのか、、全くの素人の為、ご指南頂ければと思います。

A 回答 (1件)

>作業者が10日以上の日付を入力する場合には、ポップアップで「日付超過」といったメッセージを表示したいです。



ならば「入力規則」という機能を使いましょう。
「データ」→「データ ツール」→「データの入力規則」
です。

セルを指定して
「設定」タブの
 「入力値の種類」を「日付」、
 「データ」を「次に日付けより小さい」、
 「終了日」に「=受領日+10」 
 ※受領日は実際に入力されているセルを指定してください。(例:=A1+10)
「エラーメッセージ」タブの
 「無効なデータが入力されたらエラー メッセージを表示する」にチェックマークを付け
 「スタイル」を「注意」
 「タイトル」に「日付超過」など適切な語句を入力
 「エラー メッセージ」に「受領日より10日以内の日付を入力してください」など適切な語句を入力
これでOK。

質問者さん自身で「入力規則」について確認をし使い方を理解するようにしましょう。

なお、値をコピーして貼り付けたり、フィルで連続した日付を入力した場合「入力規則」は働きません。注意してください。


・・・余談・・・

ちゃんと動作確認してくださいね。
受領日を 3/1 としたとき、上の例では 3/10 までがメッセージを出さない期日になります。
また、受領日などの日付けは年を含む日付になっていないと意図した通りに機能しないことがあります。
(例:× 3/1、〇 2019/3/1)
    • good
    • 0
この回答へのお礼

助かりました

とても丁寧なご回答、誠にありがとうございました。ご指示通り試してみたところ、期待通りの動作となりました。挙げていただいた注意点も試し、コピーなどでは動作しない場合もあると把握出来ましたので、それらは運用でカバーしていきたいと思います。稚拙な質問でしたが、、ご親切にありがとうございました。

お礼日時:2019/03/15 18:25

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

このQ&Aを見た人はこんなQ&Aも見ています

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

Qエクセル リストと完全一致するセルに色をつける

シート1のA列とB列に
aaa ccc
bbb ggg
ccc kkk
ddd ooo
と言うリストがあって、A1〜A4はAチーム、B1〜B4まではBチームと名前を付けています
シート2にAチームのリスト4個が続いているものがあればセルを赤、Bチームのリスト4個が続いているものがあればセルを黄色に塗りたいです
AチームとBチームの中には同じ品番がある時もあります
条件付き書式で設定は出来るでしょうか?

Aベストアンサー

(´・ω・`)
”○” の数を数えるんじゃないんだよなあ。

・・・本題・・・

条件付き書式ですよね。

シート2のリストの並び順は
 aaa
 ccc
 bbb
 ddd
では「Aチーム」と認識しないという事でよろしいでしょうか?
ならば、とても簡単です。

シート2の一覧において、

 判定するセル1
 判定するセル2
 判定するセル3
 色を付けるセル
 判定するセル4
 判定するセル5
 判定するセル6

という範囲について調べれば良いという事。

 判定するセル1
 判定するセル2
 判定するセル3
 色を付けるセル

 判定するセル2
 判定するセル3
 色を付けるセル
 判定するセル4

 判定するセル3
 色を付けるセル
 判定するセル4
 判定するセル5

 色を付けるセル
 判定するセル4
 判定するセル5
 判定するセル6

の4パターンについてそれぞれ調べれば良いだけ。

自分なら
 aaa-bbb-ccc-ddd
のようにシート1から文字列を作り、それが調べるセルで同じパターンになるかを調べます。
シート1はA5セルから、シート2はA11セルからデータが入力されているなら、

 シート1!A5 & シート1!A6 & シート1!A7 & シート1!A8 = A11 & A12 & A13 & A14
 シート1!A5 & シート1!A6 & シート1!A7 & シート1!A8 = A12 & A13 & A14 & A15
 シート1!A5 & シート1!A6 & シート1!A7 & シート1!A8 = A13 & A14 & A15 & A16
 シート1!A5 & シート1!A6 & シート1!A7 & シート1!A8 = A14 & A15 & A16 & A17

という条件になる。
この4つのうちの一つでも条件を満たせばセルに赤色を付ければいい。
「Bチーム」についても同様にすればいいので、
この場合、8つの条件式を設定することになります。

面倒でもこの考え方ができていないと、ちょっと条件が変わっただけで対処できずに終わります。
冒頭で「並び順」について書きましたが、並び順がシート1のリストの通りでなくとも色を付けたい場合でも、この考え方は必要ということです。

・・・
ちなみに厄介なのが、どちらのチームにも「ccc」がいるというところかな。
これが無ければ違う方法でシンプルにできるんですけどねえ。

(´・ω・`)
”○” の数を数えるんじゃないんだよなあ。

・・・本題・・・

条件付き書式ですよね。

シート2のリストの並び順は
 aaa
 ccc
 bbb
 ddd
では「Aチーム」と認識しないという事でよろしいでしょうか?
ならば、とても簡単です。

シート2の一覧において、

 判定するセル1
 判定するセル2
 判定するセル3
 色を付けるセル
 判定するセル4
 判定するセル5
 判定するセル6

という範囲について調べれば良いという事。

 判定するセル1
 判定するセル2
 判定するセル3
 色を付け...続きを読む

QエクセルのSUMが合わなくて困ってます! A1~B30にそれぞれ数値があります。 A1~A30の合計

エクセルのSUMが合わなくて困ってます!
A1~B30にそれぞれ数値があります。
A1~A30の合計は電卓なら合計100なのに表示は90。(A31にSUM (A1:A30))
B1~B30の合計は電卓なら合計100なのに表示は110。(B31にSUM (B1:B30))

すみません、これだけの説明で何かわかりますか??

Aベストアンサー

A1~A30をドラッグで選択すると、右下の枠外に合計値が表示されます。
90なら、あなたの計算が間違えてます。

100なら、循環参照等をしていませんか?
セルをコピーして、数値で張り付けしてみて、同じ計算をしてみてください。

QIF関数について

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

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

Aベストアンサー

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

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

Q一時的に“計算結果の代わりに数式をセルに表示する”には?

Excel 2013 において、
[ファイル]⇒[オプション]⇒[詳細設定]⇒[表示]⇒“数式バーを表示する”の手順で
「数式バー」表示のON/OFFができますよね。
でも、一時的にそうしたいときは、
[表示]⇒[表示 <数式バー>]でも可能だし、私はいつも
Alt+WVF なるショートカットキーで素早くチャっチャっとしています。

話変わって、…
[ファイル]⇒[オプション]⇒[詳細設定]⇒[次のシートで作業するときの表示設定]⇒“計算結果の代わりに数式をセルに表示する”の操作は承知しております。
が、一時的にそうしたいときの素早い方法(ショートカットキーがあれば仕合せ!)は寡聞にして存じません。どなたか教えていただけないでしょうか?

Aベストアンサー

[Ctrl]+[Shift]+[@]
では?

QExcelで土、日、祝日の色分けがうまくいきません

Excelでシフト表を作成しています。列に日付を入力し、行に担当者を入力しています。担当者は1日当たり2セルを使用するため、日付は2セルを結合しています。この時「条件付き書式」を用い土、日、祝日の色分けをしようとしましたが、Weekday関数を使用していますが、関数のセル指定を1つ目のセルを指定しても「:」を使って2つ目のセルを指定しても担当者の1つ目のセルしか色がつきません。どうすればいいでしょうか。

Aベストアンサー

諦める。

QExcelのフィルター後のセルにコピー

エクセルでSHEET1にデータがあり 例えば 右横項目として 名前 年齢 出身地 あだ名項目(これはまだ未入力) など 横にならんでいて左端縦には下にいろんな人の名前がずらっと並んであった場合、例えば 県別項目の青森県でフィルターを掛けた場合 そのとき必ず6人いるとものして、SHEET2に用意していた、A列下のセルに縦に あだ名6個用意していたとする、たぬき、くま、きりん、ぞう、ウサギ、カラス それを6個まるごとフィルター後のSHEET1のあだな項目欄に一回でスポット コピーペーストできるものでしょうか。

Aベストアンサー

こんばんは!

一気に!という訳にはいきませんが、VBAでの一例です。
Sheet1の1行目は項目行でデータは2行目以降にあり、
D列が「あだ名」列になっているとします。
そして、Sheet2のA1セル以降に表示したいデータが羅列してあるという前提で・・・

Sub Sample1()
 Dim i As Long, cnt As Long
  With Worksheets("Sheet1")
   If .AutoFilterMode Then
    If .AutoFilter.FilterMode Then
     For i = 2 To .Cells(Rows.Count, "A").End(xlUp).Row
      If .Rows(i).Hidden = False Then
       cnt = cnt + 1
       .Cells(i, "D") = Worksheets("Sheet2").Cells(cnt, "A")
      End If
     Next i
    Else
     MsgBox "絞り込まれていません"
    End If
   Else
    MsgBox "フィルタが設定されていません"
   End If
  End With
End Sub

とりあえずはお望みの動きになると思います。m(_ _)m

こんばんは!

一気に!という訳にはいきませんが、VBAでの一例です。
Sheet1の1行目は項目行でデータは2行目以降にあり、
D列が「あだ名」列になっているとします。
そして、Sheet2のA1セル以降に表示したいデータが羅列してあるという前提で・・・

Sub Sample1()
 Dim i As Long, cnt As Long
  With Worksheets("Sheet1")
   If .AutoFilterMode Then
    If .AutoFilter.FilterMode Then
     For i = 2 To .Cells(Rows.Count, "A").End(xlUp).Row
      If .Rows(i).Hidden = False T...続きを読む

QExcel関数 賞味期限が何%経過したかを求める式

Excel関数 を教えてください!

賞味期限が何%経過しているかを求める式が作れません。

例 賞味期限 2020/07/01 (製造から未開封で30ヵ月)
この商品は、2019/01/23日時点では賞味期限は何%過ぎたことになるのでしょうか?

これが作れないと残業から解放されず、睡眠不足で辛いです。どうか助けてください。宜しくお願いします。

Aベストアンサー

A1のセルに製造日、B1のセルに賞味期限を日付で入れる(ただし、賞味期限は製造日からのカウントの場合)

例えばA1=2018/01/01、B2=2019/07/01として、
=(TODAY()-A1)/(B1-A1)
を計算させると、今日までで何割消化したかがでてきます。

Q日付の作成方法を教えて下さい。

縦カレンダーを作りたく、色々検索して月初日を作ることは出来ました。
そこから、+1してカレンダーを作りたいのですが上手く出来なかった為、質問させていただきました。


コード
Sub 日付作成()

Dim d As Date
d = Date ' 本日日付
Range("A2").Value = DateSerial(Year(d), Month(d), 1)

Dim tenkiws As Worksheet
Set tenkiws = Worksheets("転記先")

Dim i As Long
For i = 4 To 63 Step 2
tenkiws.Cells(i, 1) = tenkiws.Range("A2") + 1
Next i

End Sub

やりたいこととしては、一行飛ばしに日付を加算させていくなのですが、上のコードだと4行目だけ変わって後は変わりません。
どうすれば63行目まで変えることが出来るのでしょうか?
ご教授宜しくお願い致します。

縦カレンダーを作りたく、色々検索して月初日を作ることは出来ました。
そこから、+1してカレンダーを作りたいのですが上手く出来なかった為、質問させていただきました。


コード
Sub 日付作成()

Dim d As Date
d = Date ' 本日日付
Range("A2").Value = DateSerial(Year(d), Month(d), 1)

Dim tenkiws As Worksheet
Set tenkiws = Worksheets("転記先")

Dim i As Long
For i = 4 To 63 Step 2
tenkiws.Cells(i, 1) = tenkiws.Range("A2") + 1
N...続きを読む

Aベストアンサー

Sub 日付作成()

Dim d As Date
d = Date ' 本日日付
Range("A2").Value = DateSerial(Year(d), Month(d), 1)

Dim tenkiws As Worksheet
Set tenkiws = Worksheets("転記先")

Dim i As Long
For i = 4 To 63 Step 2
tenkiws.Cells(i, 1) = tenkiws.Range("A2") - 1 + i / 2
Next i

End Sub

Qエクセルで関数を用いて表を作成したいです。

スポーツ評価をした結果を自動で表示されるものを作成したいと思っています。
評価内容は、モビリティ:①ASLR ②ショルダーモビリティ
モーターコントロール:③ロータリースタビリティ ④トランクスタビリティ
ファンクショナルパターン⑤インラインランジ ⑥ハードルステップ ⑦ディープスクワット
各①〜⑦の結果は、最適・合格・不合格

結果をもとに優先順位1位 2位 3位 4位を決めたいです。優先順位の仕方としては、一つ目は不合格である事がまず一つ。二つ目は、ファンクショナルパターンよりも、モーターコントロールよりも、モビリティを優先させる。3つ目は、①から⑦を上から順番に選択。

例え①不合格、②合格、③合格、④不合格、⑤合格、⑥合格、⑦合格
優先順位1位① 2位④ 3位② 4位③

関数を用いて可能だと思うのですが、わからないのでお願い致します。

Aベストアンサー

No.1です。

>順位まで出すことが出来たのですが、一位~4位に表示された①~④を文字で表す事は可能ですか?
>例えばb3が①→ダンベルという表示で、順位で一位の表示される時にダンベルと出したいのですが…

No.1の例でしめすと、
H3セルを『=B3』に修正して、下方向にコピペです。
B列を表示したい文字列に修正したら完成です。

Qエクセルの質問です。 一つのフォルダにエクセルファイルが100個あります。 そのファイル一つ一つに全

エクセルの質問です。

一つのフォルダにエクセルファイルが100個あります。
そのファイル一つ一つに全て同じ計算式
+SUM(a8:a20)を入力するのですが、とても面倒です。

何か良い方法はありませんでしょうか。

なお、ファイルはひとつひとつ別物なので、計算式を入力してからコピーという方法はとれません。

Aベストアンサー

> 同じ計算式+SUM(a8:a20)

計算式およびSUM関数という意味ですよね?


> 何か良い方法はありませんでしょうか。

全てのExcelファイルに対して式を埋め込むVBAマクロを記述したファイルを作成して実行させればよいです。

業務で作成した、雛形ファイルをコピーしてデータを入力したファイル(数百個~千以上)があり、式やマクロのアップデートをする場合に行なっています。
大量のファイルに対して手作業で修正を行うのは時間の無駄です。ミスの発生する可能性もありますしね。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング