![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
No.3
- 回答日時:
スペースによって文字列中の各要素が分かれているのですね?そうであれば、数式だけでなく、「区切り位置」の機能を併用することをお勧めします。
添付図の A 列と同一のデータが C 列にあり、C 列に対して区切り位置の処理をすることにします。C 列のデータ全体あるいは列全体を選択した状態でデータタブ「区切り位置」クリック。「カンマやタブなどの…」を指定し「次へ」。「スペース」をチェックし、「完了」。
すると、C ~ G 列のようになります。次式を入力し、最後に I 列に「yyyy/mm/dd hh:mm」を設定。
I1 =0+(e1&"-"&d1&"-"&f1&" "&substitute(substitute(g1,"AM"," AM"),"PM"," PM"))
なおこの数式は「AM」の直前にスペースを挿入していますが、それをすると、時刻の部分の文字列を Excel が時刻のシリアル値に変換してくれるのです。年月日と時刻の間にスペースを入れているのも、そうすることで日付と時刻のシリアル値の合算と認識される仕様です。
![「Excelで英語表示された日時の変換」の回答画像3](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/1/1037181_5497e5eb1baf4/M.jpg)
No.2
- 回答日時:
こんばんは!
VBAになってしまいますが、一例です。
データはA列の1行目からあるとします。
画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面に
↓のコードをコピー&ペーストしてマクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)
Sub Sample1() 'この行から
Dim i As Long
i = Cells(Rows.Count, 1).End(xlUp).Row
Application.ScreenUpdating = False
Range("B:D").Insert
Range(Cells(1, 2), Cells(i, 2)).Formula = "=SUBSTITUTE(A1,"" "",""*"",3)"
With Range(Cells(1, 3), Cells(i, 3))
.Formula = "=LEFT(B1,FIND(""*"",B1)-1)"
.Value = .Value
End With
With Range(Cells(1, 4), Cells(i, 4))
.Formula = "=MID(SUBSTITUTE(SUBSTITUTE(B1,""AM"",""""),""PM"",""""),FIND(""*"",B1)+1,LEN(B1))*1+IF(ISNUMBER(FIND(""PM"",B1)),0.5,0)"
.Value = .Value
End With
Range(Cells(1, 3), Cells(i, 3)).TextToColumns Destination:=Range("C1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(1, 3), TrailingMinusNumbers:=True
With Range(Cells(1, 1), Cells(i, 1))
.Formula = "=C1+D1"
.Value = .Value
.NumberFormatLocal = "yyyy/mm/dd h:mm"
End With
Range("B:D").Delete
Application.ScreenUpdating = True
End Sub 'この行まで
ちゃんと表示されればよいのですが・・・m(_ _)m
No.1
- 回答日時:
(1)とかから記入されているんですね。
全角半角とかスペースの有無とか、「実際のデータと違う」ところで関数が動かない可能性が高まります。
とりあえず全部ありという事にして、その分メンドクサい数式にします。
=REPLACE(TRIM(REPLACE(LEFT(A1,LEN(A1)-2),1,FIND(")",ASC(A1)),"")),7,0," , ")+IF(RIGHT(A1,2)="PM",0.5)
(数字)とか余計なスペースの除去などの前処理を丁寧に行ってから計算させることで、数式ももっとスマート(簡単)になりますので、適切に応用してみて下さい。
この回答への補足
申し訳ありません。記載方法が悪かったのですが、(1) や(2) は表示に含まれておりません。関数での表示をしたいので、参照にさせていただきたいのですが、かっこ表記のREPLACE関数を削除しただけでは#VALUE!となり表示されませんでした。
=REPLACE(TRIM(A1),7,0," , ")+IF(RIGHT(A1,2)="PM",0.5)
3時間ほど格闘したのですが解消せず、再度アドバイスをいただきたくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) エクセルのVBAについて教えてください。 4 2023/01/21 10:21
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/01/23 09:24
- Excel(エクセル) 【vba】日付の形式が勝手に変わってしまう。 1 2022/09/29 10:54
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2023/01/23 17:13
- Access(アクセス) アクセスで教えてください。 クエリで2日前を抽出する計算式を 入力して表示させると ちゃんとyyyy 1 2023/06/08 21:05
- Access(アクセス) Accessのデータ型の日付/時刻型について 1 2023/04/02 17:03
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/01/23 11:02
- MySQL SQLについて質問です。 SELECT TO_CHAR(TO_DATE('90-10-08.'YY- 4 2022/05/13 20:55
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2023/05/23 16:28
- Excel(エクセル) 年月表示を取り出すには 5 2023/02/23 22:51
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VLOOKUPの列番号の最大は?
-
エクセルで離れた列を選択して...
-
LEFT関数とIF関数の組み合わせ...
-
エクセルで住所を県と市・郡と...
-
「段」と「行」の違いがよくわ...
-
Excelの行数、列数を増やしたい...
-
リストからデータを紐付けしたい
-
エクセルのソートで、数字より...
-
Excel文字列一括変換
-
エクセルマクロの組み方
-
「コピー → 行列を入れ替えて貼...
-
VBA 指定した列にある日時デー...
-
VBA
-
VBAで結合セルを転記する法を教...
-
ListViewで列を指定して表示さ...
-
エクセルマクロで表の途中の集...
-
エクセルで?
-
VBA エラーコード1004について
-
条件付きの標準偏差をVBAを用い...
-
エクセル マクロ 範囲指定で...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで離れた列を選択して...
-
VLOOKUPの列番号の最大は?
-
「段」と「行」の違いがよくわ...
-
LEFT関数とIF関数の組み合わせ...
-
VBA 指定した列にある日時デー...
-
CSVファイルの「0落ち」にVBA
-
エクセルで住所を県と市・郡と...
-
Excelの行数、列数を増やしたい...
-
エクセルで複数列の検索をマク...
-
エクセルマクロの組み方
-
Alt+Shift+↑を一括で行うには、...
-
えABのある列って
-
エクセルのソートで、数字より...
-
エクセル マクロ 範囲指定で...
-
VBAで結合セルを転記する法を教...
-
VBAで別ブックの列を検索し、該...
-
エクセルマクロPrivate Subを複...
-
列方向、行方向の定義
-
リストからデータを紐付けしたい
-
Accessのレポートで繰り返し表...
おすすめ情報