データのフォーマットを変換したいのですが、例えば値が日時の場合はリストから「時間」を選択したら日付のフォーマット関数を適用したいです。IF文でのイメージは以下の感じです。
=IF(AE38="時間",TEXT(AC38,"yyyymm"),IF(AE38="金額",TEXT(AC38,"000000000000000"),""))

これが金額と時間の2種類だけならIF文で乗り切れますが、時間だけでも複数あるため、どこかに関数群を定義してLOOKUPで動的に・・が理想です。
VBAは考えておりません。EXCEL単独で何か良い方法ございませんでしょうか?

よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

TEXT関数しか使用しないのであれば、



時間yyyymm
金額00000

のような表を作っておいて、

=TEXT(AC38,VLOOKUP(AE38,対応表範囲,2,FALSE))

でいかがでしょうか。
    • good
    • 0
この回答へのお礼

シンプルで実用的ですね。
ただこれ以外にもコード値変換や、半角全角変換など多岐に渡っていて、できれば色んな関数を定義したいです。

でも欲張るのは良くないですね。
参考にさせていただきます。
ありがとうございます。

お礼日時:2009/05/13 16:02

こんなのはどうでしょう


Sheet1のAC38に元の値、AE38にリストで選択できる「時間」「金額」等の種別が入っている。AD38にAE38で選択した種別に対応した表示形式でAC38の値を表示すると仮定します。

別シート(例:Sheet2)に種類と文字列に整形した値の表を作成した方が良いでしょう。
A列に「標準」「時間」「金額」…とAE38で選択できる種別を入力。
B1には =Sheet1!AC38 と入れる。
B2以降は、種別に対応した表示形式に変換した文字列が入るようにする
例:=TEXT($B$1,"000000000000000")

Sheet1に戻ります。
AD38に↓の式を入れて、Sheet2で変換した文字列を表示する。
=VLOOKUP(AE38,Sheet2!$A:$B,2,FALSE)
これなら種別が増えても対応可能だと思います。
「EXCELでリストにより呼び出し関数を変」の回答画像2
    • good
    • 0
この回答へのお礼

これは全く想像できませんでした。こういう発想大好きです。(理系の方でしょうか?)
早速トライしてみようと思います。
ありがとうございます。

お礼日時:2009/05/13 15:55

あなたの発想は進んでいると思う。

しかしエクセルの関数の現状を経験不足でご存じない。そして特別なことだと言う認識にいたっていない。
適用する関数式はVLOOKUPで探せるでしょう。しかしその探した文字列を関数として働かす仕組みがエクセルには無い。
そういうレベルは解決すべき課題として、MS社は思慮に入れてないと思う。
MSのソフト技術者の力を以ってすれば造作も無いことと思うが。
やるならVBAを勉強してどうぞと言うことだと予測する。
これを認めると、シートの式の読みが複雑になりすぎると思う。
ーー
Evaluateという仕組みを作っているソフトが有るらしい。
またエクセル関連で
GOOGLEで「evaluate エクセル」で照会のこと。
ーー
また関数で表示形式の設定(左右する)は出来ませんから、変な思考に迷い込まないこと。
ーー
結論はVBAでこなせる内容かどうかということ。VBAででも質問に内容の全貌の記述がなく、答えが出ない。
    • good
    • 0
この回答へのお礼

実は単なる検証ツールを作成していて、それ自体に問題があるのでは、という疑念は避けたい。しかも作っている私も居なくなってしまうので、その後のメンテ、可用性を下げたくない。との理由でEXCELだけにこだわっています。
「探した文字列を関数として働かす仕組みがエクセルには無い」←色々調べた。
「表示形式の設定(左右する)は出来ません」←色々試した。

これらの疑問が解けただけでも大変勉強になりました。
ありがとうございました。

お礼日時:2009/05/13 15:51

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

このQ&Aを見た人が検索しているワード

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

Q 「候補日時を2~3お戻ししてください」とはどういう意味ですか?

 「候補日時を2~3お戻ししてください」とはどういう意味ですか?

 元々設定された日時は、5月9日の15時:30分です。
 これを2~3戻すと、日時は何時になりますか?
 5月7日13時30分or5月7日13時00分or5月6日13時30分or5月6日13時00分
のいずれかのことですか?

Aベストアンサー

言葉の意味はその前後の流れ、文脈、当事者同士の状況などでトータルに解釈されていくものです。
単に流れの中から一部を抜き取ってそれだけを分析してもナンセンスな場合が多いと思います。
仰るご質問もその典型のようなものだと思います。
どんな状況でそれが言われたのか?その前後の言葉は?なぜここで質問しなければならないのかなどを補足いただければ、ひょっとして有効な助言が可能かもしれません。
このままでは(文面が正しいとして)シュールで不条理な筋の非日常性を扱った現代劇のせりふの断片ではないかというような感想しか思い浮かびませんね。
ご参考まで。

Q日付 =TEXT(C2,"m月d日(aaa)")が=TEXT([@月日],"m月d日(aaa)")

日付を文字列に変換するため
=TEXT(C2,"m月d日(aaa)
と入力していたものが
今見ると 
=TEXT([@月日],"m月d日(aaa)")
となっていました。
数式バーをクリックすると[@月日]は、
画像のように青くなっています。
なぜこうなるのですか

Aベストアンサー

テーブルの構造化参照になっているだけですね。

Excel2007以降 テーブル書式は基本中の基本の使い方なので必ず
勉強して使えるようになっておくべきだと思います。

Q「日付時刻」と「撮影日時」は同じ意味なのでしょうか

画像フォルダの中の「日付時刻」と「撮影日時」は同じ意味なのでしょうか?

Aベストアンサー

みなさんと同じような回答になってしまいますが、他の方は具体的な記述が無いために、質問者さんがご自身でさらに深く調べようと思っても、できないような回答ばかりなので、失礼とは思いますが、改めて書かせて頂きます。

まずは、質問者さんへの確認事項として、ここで言われている「日付時刻」と「撮影日時」は、Windowsのエクスプローラーで、ファイルを「詳細」の状態で見た場合に表示される情報であることを前提に話をさせて頂きます。

まず「日付時刻」ですが、これはファイル属性の1つとして「ファイルの作成日時」を示しています。(撮影し、ファイルが作成された時の日時)

また「撮影日時」は、Exif情報とも言われ、Jpeg画像のファイルの中にコメントのようにして「埋め込まれた情報」です。

つまり、何を言いたいかと言えば「日付時刻(作成日時)」は、たとえばSDカードに保存されている画像であれば、そのSDカード内で「ディレクトリ情報」として管理されているもので、その画像ファイル自体で持っている情報ではないと言う事です。
SDカードからPCのHDDへ転送する際に一緒にその「ディレクトリ情報」も引き継がれるから、デジカメなどで撮影した日時と日付時刻が一致するだけの話です。

その逆に「撮影日時」は、画像ファイル(Jpegファイル)の中に埋め込まれた情報なので、画像編集ソフトなどを使うと、場合によっては無くなってしまうものもあります。

また、どちらの情報も編集する(加工する)ことは可能ですから、必ずしも実際に撮影した日時を示しているという保証はありません。

みなさんと同じような回答になってしまいますが、他の方は具体的な記述が無いために、質問者さんがご自身でさらに深く調べようと思っても、できないような回答ばかりなので、失礼とは思いますが、改めて書かせて頂きます。

まずは、質問者さんへの確認事項として、ここで言われている「日付時刻」と「撮影日時」は、Windowsのエクスプローラーで、ファイルを「詳細」の状態で見た場合に表示される情報であることを前提に話をさせて頂きます。

まず「日付時刻」ですが、これはファイル属性の1つとして「ファイル...続きを読む

Q=IF(A1<10,TEXT(A1,"0.0"),A1) に<1の時を加えたい

よろしくお願いします。いつもお世話になっています
エクセルは2013です
下記の式1と式2を1つの式で表現したいのですが、どう書いたらいいでしょうか
なんか無理そうな気がしますが、方法があれば教えてください

式1
=IF(A1<10,TEXT(A1,"0.0"),A1)
式2
=IF(A1<1,TEXT(A1,"0.00"),A1)

Aベストアンサー

=IF(A1<1 ,TEXT(A1,"0.00") ,IF(A1<10 ,TEXT(A1,"0.0") ,A1) )

「1より小さい」の条件が成立していなければ、そのまま「10より小さい」の条件で比較。

Qアポインの日時を決めるのに間に人を挟む意味

こんにちは

半分以上愚痴なんですが聞いてください。

会社で(プライベートでも時折)社長と取引先の方でゴルフや食事等の日程を合わせるときに、参加しない私が間に入って、ご都合のいい日時をお互いから聞いて決めます。

私は秘書でもないし、意味のない仕事と思っているので頼まれると本当に嫌です。

直接やり取りをしてもらえれば1回で決めれる事を、何往復もやり取りをしてとても無駄を感じます。
会社の為にもこんなことで人件費を使っては勿体ないです。

(1)AさんとBさんは私よりお互い面識がある
(2)その会に私は参加するわけでもない
(3)私が会場を手配するわけでもない
(3)私の業務は秘書ではない(秘書はいない)
(4)普段私が一番連絡が取りにくい(実務で忙しい)

これは会社間でのそれぞれ役職が関係するのでしょうか?
同じような経験をされている方どう思われますか?

もし断るならどのように言ったら角が立たないと思いますか?

くだらない質問だと思われるでしょうが返信お願いします。

Aベストアンサー

おばさんです。

会社として、取引先の方を<立てる>ためのものではないでしょうか。

もちろん、直にやり取りしてもらえば、手間も省けますし、簡単です。
ですが・・・社長が取引先の会社に<そんなこと>で連絡するのも・・・かえって失礼に感じてしまいます。
電話ですと、会社対会社となりますので、例えば、社長にあちらの新人さんに対して<お世話になっております>と言わせるのも・・・さすがに私は気が引けます。
それにはやはり、会社間でのそれぞれ役職が関係しているように思います。

ですので、私がパートで勤めていたところでも、取引先へ社長が連絡をするときには、私が挨拶をしてから電話をつないでいました。
もちろん、秘書がいるような大きな会社ではありません。
一応株式会社でしたが、パート社員3人の会社でも・・・です。

また、取引先への<礼儀>として、間に入っていました。
特に嫌だった記憶もありませんから、<仕事>と認識していたのだと思います。

内容的には不満でしょうが、それも取引先と、<円満に><円滑に>仕事をしていく上で、必要なことだと思います。

ご不満もおありでしょうが、<仕事>と割り切り、笑顔で対処されることをおすすめいたします。

ご参考までに・・・。

おばさんです。

会社として、取引先の方を<立てる>ためのものではないでしょうか。

もちろん、直にやり取りしてもらえば、手間も省けますし、簡単です。
ですが・・・社長が取引先の会社に<そんなこと>で連絡するのも・・・かえって失礼に感じてしまいます。
電話ですと、会社対会社となりますので、例えば、社長にあちらの新人さんに対して<お世話になっております>と言わせるのも・・・さすがに私は気が引けます。
それにはやはり、会社間でのそれぞれ役職が関係しているように思います。

ですので、私...続きを読む

Q=IF(ISNA(VLOOKUP($A1,sheet2!$A$1:$B$12,2,FALSE)),"",VLOOKUP($A1,sheet2!$A$1:$B $

いつもお世話になってます。
以下の関数式について、お時間がありましたらどうぞご教示ください。

=IF(ISNA(VLOOKUP($A1,sheet2!$A$1:$B$12,2,FALSE)),"",VLOOKUP($A1,sheet2!$A$1:$B $12,2,FALSE))

「シート2の範囲指定した表にA1セルの値と同じ値の右隣になる値を返せ。ただし該当なき場合は空白とせよ。」

純粋になんでこのような構文になるのかが解りません。

1.ISNAってそもそもなんでしょう?
2.同じ式を繰り返すのはなぜ?
(模範式で、このように同じ式を繰り返す構文があまり無いように思えたのです。)

・参考となる他所のページがあれば教えて下さい。
・素人です。お手柔らかにお願いします。

(エクセル2003)

Aベストアンサー

1.ISNAってそもそもなんでしょう?
ISで始まる情報関数の一つで、#N/A!エラーのみを判定する関数
結果はTRUE(真),FALSE(偽)のいずれかになります。
エラー判定のIS関数には他に
ISERR:#N/A!を除くすべてのエラーを判定する関数
ISERROR:すべてのエラーを判定する関数
があります。

2.同じ式を繰り返すのはなぜ?
ISNAの判定する値がセルでなく数式の結果だからです。
A2=VLOOKUP($A1,sheet2!$A$1:$B$12,2,FALSE)
なら
A3=IF(ISNA(A2),"",A2)
ということになります。A2のように計算の為のセルを省略する為に
=IF(ISNA(数式),"",数式)のように同じ数式を2回繰り返しになってます。

Q作成日時 更新日時 アクセス日時について

ファイルを右クリック→プロパティの全般のタブで表示される

作成日時 更新日時 アクセス日時

の意味がよくわかりません。
作成日時とアクセス日時が同じで更新日時のみが古い日付だったり、
作成日付のみが古かったりしています。

このような日付はどのような作業をすると表示が変わるのでしょうか?
教えてください。

Aベストアンサー

1.作成日時:そのファイルが作られた日時
2.更新日時:そのファイルが更新された日時
3.アクセス日時:そのファイルにアクセスした日時

1はファイルのコピーをした場合も該当します。
2はファイルを保存したときなどが該当します。
3はファイルをプログラムなどから開いた場合に該当します。

作成日時とアクセス日時が同じで、更新日時が古い場合って言うのは、コピーされたファイルだからでしょう。
作成日時のみが古いっていうのは、そのファイルを更新したり、ただ開いてみたりしているからでしょう。

ためしにテキストファイルを1つ作って、コピーや編集、保存などして遊んでみてください。理解できると思いますよ。

Q=IF(A2="",A1,A2)

=IF(A2="",A1,A2)で
A2が0のときは、A1の表示のままで
0以外の数字が入ったときは、A2の表示にする方法を教えてください。

Aベストアンサー

=IF(A2=0,A1,A2)です。書いてあるのはA2がスペースの時の条件です。

Qファイルの作成日時の表示が変わってしまう。

Windows7です。

パソコンAで "オレンジ" "イチジク" "アップル" という名前の3のファイルを作成したとします。
(拡張子は音声ファイルです。)

オレンジの作成日時は2013/02/14 20:00
イチジクの作成日時は2013/02/14 21:00
アップルの作成日時は2013/02/14 22:00

だとすると、それらをフォルダに入れ、作成日時順で表示すると、オレンジ、イチジク、アップルの
順番で上から順に表示されるのですが、
それらをパソコンBにコピーした場合、

オレンジの作成日時は2013/02/14 23:00
イチジクの作成日時は2013/02/14 23:00
アップルの作成日時は2013/02/14 23:00

とファイルの作成日時がコピーをした?時間に全て変更されてしまいます。
なので、作成日時順に並び変えても意味がなくなってしまいました。

パソコンBにファイルをコピーした際、作成日時はパソコンAの状態で表示して、
作成日時順に並び替えたいのですが、どうすれば良いでしょうか?

回りくどい説明になってしまいすみません。
どなたかご教示願います。

Windows7です。

パソコンAで "オレンジ" "イチジク" "アップル" という名前の3のファイルを作成したとします。
(拡張子は音声ファイルです。)

オレンジの作成日時は2013/02/14 20:00
イチジクの作成日時は2013/02/14 21:00
アップルの作成日時は2013/02/14 22:00

だとすると、それらをフォルダに入れ、作成日時順で表示すると、オレンジ、イチジク、アップルの
順番で上から順に表示されるのですが、
それらをパソコンBにコピーした場合、

オレンジの作成日時は2013/02/14 23:00
イチジクの作成日時は2013/...続きを読む

Aベストアンサー

「作成日時」なら当たり前の動作です。

なぜなら、パソコンBのディスクにそれらのファイルが作られたのはまさに2/14の23:00なのですから。


あなたの意図したことをするためには、「作成日時」ではなくて「更新日時」を使ってください。

これはWindows NTのころから変わっていません。

QExcelでの表編集でC1に =IF(A1="",B1,A1)

Excelでの表編集でC1に =IF(A1="",B1,A1)
と以前文字データのある列A1、B1、2つからそれぞれ穴あき
を補いc1に表示する式=IF(A1="",B1,A1)を教えていただいたのですが
2列まではこの式で行けるのですが3列以上に対応させる記述が
分かりません。
3列以上の表示を一列にまとめる式を教えてください。
お願いします。

Aベストアンサー

条件が良く判りませんが?

セルB1が空白のとき、セルC1をセルD1に表示
という条件を追加すると
=IF(A1="",IF(B1="",C1,B1),A1)

こんな感じですが、イメージと違う場合は補足してください。


人気Q&Aランキング

おすすめ情報