No.2ベストアンサー
- 回答日時:
VLOOKUPで日付を持ってきてるということは変動する可能性があるということを前提に書かせていただきます
excelの区切り機能ではあくまでそのセルに入力されている値(計算式)を対象として処理をしますので
数式などで参照してきた値を区切ることはできません。
関数でそれぞれ年、月、日を取り分ける必要があります。
以下の方法で出来ます(2通りの方法でやってみました)
A1に日付「2014.1.2」が入っているとします
(1.1でしたら月と日の見分けが出来ないため変えています)
■文字列として扱い取り分ける場合
(1)「年」を取り出すには
=LEFT(A1,SEARCH(".",A1)-1)
(2)「月」を取り出すには
=MID(A1,SEARCH(".",A1)+1,SEARCH(".",A1,SEARCH(".",A1)+1)-SEARCH(".",A1)-1)
(3)「日」を取り出すには
=RIGHT(A1,LEN(A1)-SEARCH(".",A1,SEARCH(".",A1)+1))
解説__________________
○使用している関数は以下のものになります。
LEFT・・・指定した文字の左から何文字か取り出す関数
MID・・・指定した文字の何文字目から何文字目までを取り出す関数
RIGHT・・・指定した文字の右から何文字か取り出す関数
LEN・・・指定した文字の文字数を返す関数
SEARCH・・・指定した文字の中から指定した指定した検索文字のある場所を返す関数
○方法
SEARCHでドット「.」の位置を調べてLEFT、MID、RIGHTと組み合わせて文字を取り出しています
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
■日付として扱い取り分ける場合
(1)「年」を取り出すには
=YEAR(DATEVALUE(SUBSTITUTE(A1,".","/")))
(2)「月」を取り出すには
=MONTH(DATEVALUE(SUBSTITUTE(A1,".","/")))
(3)「日」を取り出すには
=DAY(DATEVALUE(SUBSTITUTE(A1,".","/")))
解説__________________
○使用している関数は以下のものになります。
YEAR・・・指定したシリアル値から年を取得して返します
MONTH・・・指定したシリアル値から月を取得して返します
DAY・・・指定したシリアル値から日を取得して返します
DATEVALUE・・・日付としてシリアル値(1900/1/1を1としたときの日数)に変換します
SUBSTITUTE・・・指定した文字から指定した文字を検索して指定した文字へ置換します
○方法
値が2014/1/2とかでしたらエクセルは日付として認識できるのですが、
区切り文字がドット「.」でしたらそのままでは文字列としか認識してくれません。
SUBSTITUTEで「.」を「/」に置換してからDATEVALUEで日付に変換し
YEAR、MONTH、DAYを取り出しています
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
前者の方法を覚えると文字の取出しが自由にできるようになるとおもいます。
が、この場合シンプルでわかりやすいのは後者でしょうかね。
~~~~~~~~~~~~~~~~~~~~~~~~~
そもそも
VLOOKUPで取り出した日付がそれ以降変動させる必要がない場合、
関数で取り出した値「2014.1.2」をそのまま文字列として変換し、
excelの区切り機能で分けることが可能です。
(1)A1をコピー
(2)A1を右クリック「形式を指定して貼付」を選択
(3)「値」を選んで「OK」をクリック
でA1のVLOOKUPの数式が無くなり日付の「2014.1.2」がA1に入りますので
excelの区切り機能で区切り文字を「.」としてください。
No.4
- 回答日時:
>vlookupで他のシートから日付を出してきた。
(例) 2014. 1.1例示の2014.1.1は文字列でしょうか?、それともシリアル値(数値)の表示形式を日付形式にしたものでしょうか?
何方かによって処理の方法が異なります。
>選択したデータが関数としてではなく、その結果出てきた数値として参照できるようにする方法があればご教示ください。。。
処理の途中はどのような方法でも、最終目的に合えば良いと思います。
VLOOKUP関数の返り値(2014.1.1)が文字列としたとき以下のような数式で対応できます。
年の値(数値)=YEAR(VALUE(SUBSTITUTE(VLOOKUP($A1,$E$1:$F$3,2),".","/")))
月の値(数値)=MONTH(VALUE(SUBSTITUTE(VLOOKUP($A1,$E$1:$F$3,2),".","/")))
日の値(数値)=DAY(VALUE(SUBSTITUTE(VLOOKUP($A1,$E$1:$F$3,2),".","/")))
この数式を使ってExcel 2013で検証した結果の画像を添付します。
文字列の切り出し以外に年・月・日の値を切り出す方法があります。
今回の処理では数値として取り出しましたがそれを文字列に変換するにはTEXT関数を使えば良いでしょう。
今回の数式はVLOOKUP関数の戻り値をSUBSTITUTE関数に渡し、VALUE関数で数値に置き換えた上で、YEAR関数で年の数値に、MONTH関数で月の数値に、DAY関数で日の数値に変換しています。
この回答へのお礼
お礼日時:2014/04/26 12:14
なるほど、戻り値をSUBSTITUTE関数、VALUE関数、そしてYEAR/MONTH/DAY関数で変換することができるのですね。とても勉強になりました。誠にありがとうございました!
No.3
- 回答日時:
ご質問内容の情報が抜けているので、きちんとした回答ではないのですが、
>「2014.1.1」ではなく、「=VLOOKUP(A2, .........)」
これは、「=VLOOKUP(A2, .........)」の数式のセルが、[書式]--[文字列]になっているのが原因ですから、まず、それを[標準]などに修正しないことには、どんな数式でも解決しないはずです。
その後は、例えば、こんなふうになります。
=YEAR(SUBSTITUTE(VLOOKUP(A2,D1:E10,2),".","/")*1)
これで、数値データになります。
No.1
- 回答日時:
こんにちは!
VLOOKUP関数で表示されているのは質問通りの 2014.1.1 となっているのでしょうか?
そうであれば参照先は「文字列」というコトだと思います。
ただ、数式によって表示されているデータを「区切り位置」で区切れませんので、実データにしてやります。
仮にB列に結果が表示されているとします。
B列すべて(もしくは区切りたいデータ)を範囲指定 → 右クリック → コピー → そのまま右クリック → 「形式を選択して貼り付け」 → 「値」を選択しOK
後は普通に「.」で区切れば大丈夫だと思います。
※ 質問文をみるとまずそういうコトはないと思いますが、
「値」にして、5桁数値の場合はシリアル値ですので、区切り位置で区切るコトはできません。
その場合B2セルに5桁数値が表示されているとすると
C2セルに
=YEAR(B2)
D2セルに
=MONTH(B2)
E2セルに
=DAY(B2)
のように各セルに数式を入れたやる必要があります。m(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 表示形式、文字列セル(列)に数式を入力するには マクロ 1 2022/09/18 10:53
- Excel(エクセル) エクセルで値ではなく関数を参照する方法 6 2023/03/19 00:50
- Excel(エクセル) Excel 区切り位置指定ウィザードの選択データプレビューで全列を指定する方法 お世話になります。E 1 2023/01/17 16:36
- Excel(エクセル) エクセルに詳しい方 よく読んでからのご回答お願いします 外部からデータが来ますが、日付が202201 7 2022/06/29 16:15
- Excel(エクセル) VLOOKUP が機能しない、その原因は何 ? 8 2022/10/19 12:06
- Excel(エクセル) 非表示にしたい行をグループ化して折り畳み 4 2022/09/17 20:17
- Excel(エクセル) 範囲選択すると最後の一行で急に出てくる#が邪魔で困っています。 ExcelでVLOOKUPで引っ張っ 2 2022/08/31 10:03
- Java javaのCSVデータ読込についてです 6 2022/07/02 10:58
- Excel(エクセル) マクロを簡潔にしたい 6 2022/09/16 10:37
- 統計学 統計分析とExcelに詳しい方、何卒よろしくお願いいたします。 6 2022/05/27 10:30
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで上位バイトのセルと...
-
エクセルの問題です。絶対値の...
-
エクセルの関数の勉強の仕方
-
CELL関数のヘルプ文の意味?
-
非表示列の再表示に失敗
-
ピボットテーブルという機能に...
-
エクセルのコメントのデザイン...
-
libre 表計算ソフトの計算がう...
-
「問題が発生しました」ですと?
-
西暦和暦
-
Pivotで、フィルターまたは行ラ...
-
エクセルはエクセレントに難しい
-
半角カタカナをヘボン式ローマ...
-
xlsxファイルを保存する際にPDF...
-
Excelに詳しい方お願いいたしま...
-
エクセルの入力データと図形の...
-
pdfの表をexcelにはりつけて計...
-
Excel PowerQueryで日付の列が...
-
エクセルの「赤」の印刷がうま...
-
棒グラフの縦軸目盛線の間隔変更
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBA、別ブックへ転記す...
-
エクセルでの作業計算方法について
-
時間によってファイル名が変わ...
-
【関数】適切な文字数の数字を...
-
Excelについて教えてください
-
エクセル初心者です 関数の入れ...
-
【マクロ】ファイル名の変更に...
-
UNIQUE関数が使えないバージョ...
-
エクセルの計算
-
【関数】先頭だけにある、半角...
-
Excelで、決まった行を繰り返し...
-
Excelでセルの値が同じか...
-
LOOKUP関数を使えばいいのでし...
-
Excel
-
はがきについて。
-
エクセルの条件付き書式につい...
-
エクセルのデーターが2か月前の...
-
エクセル②
-
エクセルで「-0.0」と表示さ...
-
Microsoft1Officeの互換ソフト...
おすすめ情報