アプリ版:「スタンプのみでお礼する」機能のリリースについて

添付画像を見ていただいて、A列は商品番号。B列は商品名。C列は入力日時の項目となってます。
バーコードリーダーを使い、「A2」と「B2」に入力したときに、
「C2」に日時を自動で入力したいです。
検索して調べたのですが、マクロをつかったものしか見つかりません。
関数でやりたいのですが、どういう式にすればいいですか?
※何も入力されていないときは「表示しない」でお願いします。

よろしくお願いします。

「関数を使った日時の自動入力」の質問画像

A 回答 (7件)

結論から言うと、以下の二者選択です。


1、マクロを使う
2、手入力(ショートカットキーを使って)する。

>検索して調べたのですが、マクロをつかったものしか見つかりません
たぶんの多くの方がマクロで処理しているという事でしょう。
参考までに、
下部分にあるシート名のタブを右クリックして
コードの表示を選択
VBエディターが起動するので
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 Then
If Target.Value = "" Then
Target.Offset(0, 1).Value = ""
Else
Target.Offset(0, 1).Value = Now
End If
End If
End Sub
を張り付けて閉じる。
取りあえず、一度、お試しください。
それぞれのコードの意味が知りたければ、再度質問して向てください。
    • good
    • 0
この回答へのお礼

やってみました。
できました。
コードの意味教えてください。

よろしくお願いします。

お礼日時:2016/11/14 01:09

No5の回答をした者です。


一応、動作確認はしているので、問題は源義家さん側にあると思います。
少しは自分で考えましょうね。
    • good
    • 0

「マクロは初心者なので、わかりません。

」とのことなので、回答するだけ無駄かなとも思ったのですが、この程度のことであれば、ごく簡単なVBAで実現可能です。yoshiieminamotoさんがVBAアレルギーでなければ、是非、挑戦してみて下さい。

No.4 tom04さんの回答の通り、Excelの標準的な関数では無理なので、ユーザ定義関数を作成することをお勧めします。ユーザ定義関数は、普通に数式として使用できます。使い方自体は普通の関数と変わらず、セル上に数式として記述するだけです。

今回の場合、標準的な関数で行おうとすると次のような数式になりますが、これだと再計算する度に値が変わってしまいます。

【標準的な関数を使用した場合】=IF(A2="","",NOW())

そこで、再計算しても値の変わらないユーザ定義関数(MYNOW)を作り、それをセルの数式に指定します。

【ユーザ定義関数(MyNow)を使用した場合】=IF(A2="","",MYNOW())


【ユーザ定義関数(MYNOW)】
Function MYNOW() As Variant
If Application.ThisCell.Text = "" Then
MYNOW = Now()
Else
MYNOW = Application.ThisCell.Value
End If
End Function
    • good
    • 0
この回答へのお礼

やってみましたが、「#NAME?」になってしまいます

お礼日時:2016/11/14 21:14

こんにちは!



>関数が使えないなんて。
>エクセルは「日付」「時刻」が弱いんですね。

関数によって表示されている日付・時刻等は
数式が入っている以上は、そのセルだけに限らす他のセルが計算されるたびに
再計算され、表示される結果も変わってきます。
すなわち「生データ」として残しておきたい場合、関数では無理です。

当然VBAであれば可能ですが、ご希望が「関数で!」というコトですので
敢えてここでコードは紹介しません。

※ VBAでもOKだというコトであれば
ある程度のコード記載は可能ですし、
他の方からのアドバイスもあると思います。m(_ _)m
    • good
    • 0

No.2です


既にNo.1さんが書かれてましたね
よく読まずに書いてしまいました。お恥ずかしい。
    • good
    • 0

お望みの回答でないし既にご存知かもですが



手操作入力なら
<Ctrl>+;
で日付、
<Ctrl>+:
で時刻
を入力できます。

入力した時点での日付時刻が数値として残り、再計算による変化はありません。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
ショートカットキーは、知りませんでした。
よくある単純なことなんですけど、
関数が使えないなんて。
エクセルは「日付」「時刻」が弱いんですね。

お礼日時:2016/11/13 03:35

関数を使うと、


 =IF(A1&B1="","",TODAY())
…で日付は表示できますが、再計算すると計算した日付に変わります。
なお、時刻を取得する関数はありません。

と、いう事ですのでマクロに頼らざるを得ないのです。

なお、
 日付の入力は、Ctrl+;
 時間の入力は、Ctrl+:
で自動的に入力可能です。
これをマクロで行うだけですよ。
自分で一から作りたいのであれば、記録マクロを解析しながら作成してみましょう。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
マクロは初心者なので、わかりません。
関数なら回答いただいた式をコピペすればよいだけと思いまして。
マクロだと自由がきかないので。

お礼日時:2016/11/13 03:28

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

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