• ベストアンサー

平成12年3月4日(○曜日)とセルに入ってるデーターを変数として

今日は XP Office2003です、エクセルについて質問いたします。 平成12年3月4日(○曜日)とセルに入ってるデーターから(4日)の4だけを取り出し、それを変数として、 その同じ表内のデータを他のセル等にコピーとか、移動させたいのです。 そのような取り出し方は可能なのでしょうか。 誰か分かる方宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • CMLT
  • ベストアンサー率40% (143/357)
回答No.9

>何故か「1900/1/4」と表示される 1900/1/4(日付)をシリアル値に直せば4になります。書式設定を確認して下さい。 >#value!が出る ・参照先(A1)が空白か、~月~日~の形になっていない ※表示が~月~日~でも、実データ~/~/~を書式設定で日付にしている場合もダメ、この場合はもっと簡単に変換できる ・初めに出てくる"月"より前に"日"が出現している ・初めに出てくる"月"と初めに出てくる"日"の間に数字以外の文字が入っている など

eiji_0035
質問者

お礼

CMLTさん、有難う御座います もっと勉強してみます

その他の回答 (8)

  • nattocurry
  • ベストアンサー率31% (587/1853)
回答No.8

> 何故か「1900/1/4」と表示されるのですが?? セルの書式の表示形式を標準にしましょう。

  • CMLT
  • ベストアンサー率40% (143/357)
回答No.7

No.4です。 文字列の中から日付部分を取り出して数値に直す 関数 の例を提示しただけなんですが… ちなみに最後の*1で文字列を数値に変換しています。

eiji_0035
質問者

お礼

#value!が出るのですが?? 関数の入力は間違っていないと思うのですが??

eiji_0035
質問者

補足

すみません!!! 何故か「1900/1/4」と表示されるのですが?? pcの日付をチェックしても合ってるような???

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.6

>「平成12年3月4日(土曜日)」から「2000/3/4」に変換出来るのでしょうか。 「平成12年3月4日(土曜日)」がA1セルにあるとき、別のセルに  =LEFT(A1,FIND("日",A1))*1 を入力すると「36589」が表示されます(日付のシリアル値)です。 この式が入ったセルの書式を日付形式にすれば「2000/3/4」と表示することも可能です。 また式を以下にすれば日付の「4」だけが得られます。  =DAY(LEFT(A1,FIND("日",A1))*1)

  • y_yyy
  • ベストアンサー率12% (1/8)
回答No.5

>VBAを組んでいるのですが、VBAからセルデーターを「平成12年3月4日(土曜日)」から「2000/3/4」に変換出来るのでしょうか。 回答番号:No.4 さんの回答あたりが参考になるとおもいます。 セルデータをどうしても「平成。。」で持っている場合は、 No.4さんの方法で日付を取得するのが早いかもしれませんね。

  • CMLT
  • ベストアンサー率40% (143/357)
回答No.4

>4だけを取り出し、それを変数として とりあえず文字列操作で数値として取り出す場合の関数をば・・・ =MID(A1,FIND("月",A1)+1,FIND("日",A1)-FIND("月",A1)-1)*1 データセルをA1と仮定しました。日付部分が何桁になろうが半角になろうが平気です。

eiji_0035
質問者

お礼

CMLTさん、有り難う御座います。 早速使ってみます。 ところで(*1)の意味が不明なのですが。                                =MID(A1,FIND("月",A1)+1,FIND("日",A1)-FIND("月",A1)-1)*1

eiji_0035
質問者

補足

CMLTさん、早速VBAでかいてやりましたが、 「コンパイルエラー Sub またはFunctionが定義されていません」 というダイヤログですが、何が原因でしょう。 FIND関数が、必ずFindに自動的に修正されます??? 何か呼び出せない原因があるのでしょうか??? Mid関数ではエラーは出ないのですが???

  • nattocurry
  • ベストアンサー率31% (587/1853)
回答No.3

平成12年3月4日(○曜日) というデータが入っているセルを選択したときに、上部の数式バーにはどのような値が表示されますか? 2000/3/4 と表示されるのか、 それともそのまま 平成12年3月4日(○曜日) と表示されるのかで、対応は変わります。

eiji_0035
質問者

お礼

nattocurryさん、有り難うございます 数式バーにはそのまま、平成12年3月4日(○曜日)と表示されます

  • y_yyy
  • ベストアンサー率12% (1/8)
回答No.2

まずデータとしては、「2000/3/4」など 単純な日付形式で持つようにします。 で、セルの表示形式で「平成12年3月4日(土曜日)」 となるようにします。 →該当セルを右クリック→セルの書式設定で表示形式タブで ユーザ定義を選択して、種類のところに [$-411]ggge"年"m"月"d"日"(aaa"曜""日") と記述し、OKボタンを押下 そのセルの日にちを取り出したい場合は、 DAY関数を使って、取り出せる データのセルがA1の場合は、 =DAY(A1) と表示させたいセルに書けばOKです。

eiji_0035
質問者

お礼

y_yyyさん、回答有り難う御座います。 >まずデータとしては、「2000/3/4」など 単純な日付形式で持つようにします。 VBAを組んでいるのですが、VBAからセルデーターを「平成12年3月4日(土曜日)」から「2000/3/4」に変換出来るのでしょうか。

回答No.1

平成12年3月4日(○曜日)とセルに入ってるデーター とありますが、データ自体が「2000/3/4」で表示形式が和暦であれば「=DAY(セル)」で「4」を取り出すことはできます。 このセルのデータは、文字列で「平成12年3月4日(○曜日)」と入っているのでしょうか? 文字列であれば、文字列操作の関数を使って取り出すことになると思いますが。