• ベストアンサー

エクセル関数(関数での算出データに関数を反映させる方法)

顧客管理業務に活用する、エクセル関数の活用方法について質問です。 セルA1に『過去の施術日(1)』 セルB1に『過去の施術日(2)』 セルC1に『過去の施術日(3)』 セルD1に『過去の施術日(4)』 セルE1に『最終施術日(関数で算出)』 セルF1に『適性施術頻度』 セルG1に『次回予定』 過去の施術日(1)~(4)には日付が記載されております。 そのデータを基に、E1『最終施術日』の値を関数で算出。 ちなみに最終施術日の数式は、以下となります。 =IF(COUNTA(A1:D1)>0,TEXT(MAX(A1:D1),"yyyy/m/d"),"施術履歴無") ------------------------------------------------------------------ さて、問題に直面しているのは、ここからなのです。 セルE1の『最終施術日』の値から、本日までの日数が セルF1の『適性施術頻度』を超えた場合は、 セルG1の『施術予定』に“施術” 超えていない場合は、“無し” 空欄の場合は、“毎回確認” と表示させたいのです。 ちなみに、セルE1の『最終施術日(関数で算出)』を 関数を使用せず、通常のデータを入力していた時は、 以下の数式で機能しておりました。 =IF(COUNT(F1)=0,"毎回確認",IF(MAX(E1)<TODAY()-F1,"施術","無し")) しつこいようですが、セルE1の『最終施術日(関数で算出)』を 関数を使用してから、機能しなくなってしまいました。 データ例 A1       B1       C1       D1         E1                         F1    G1 2009/5/1   2009/6/15  2009/6/30  2009/9/8    最終施術日(2009/9/8 ※関数で算出)  30  次回予定 2009/5/28  2009/6/30                    最終施術日(2009/6/30 ※関数で算出)  45  次回予定 以上、複雑な質問となり、簡単には解けないかもしれませんが 分かる方は、是非教えてくださいませ。宜しくお願い致します。

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

  • ベストアンサー
  • a987654
  • ベストアンサー率26% (112/415)
回答No.2

NO1の方の言われている通りです。 失礼ですが、NO1の方のアドバイスでご理解頂けない場合のために >=IF(COUNTA(A1:D1)>0,TEXT(MAX(A1:D1),"yyyy/m/d"),"施術履歴無") を下記に直して、表示形式を日付にすれば何も問題ありません。 =IF(COUNTA(A1:D1)>0,MAX(A1:D1),"施術履歴無")

uwkazu
質問者

お礼

的確な補足、有難うございました。 無事に反映させる事ができました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • boro-pc
  • ベストアンサー率30% (64/208)
回答No.1

んー別にエクセルに秀でてる訳ではありませんけど… 複雑ではあるかも知れませんが簡単ではありそうですね とりあえずヒントってことで >=IF(COUNTA(A1:D1)>0,TEXT(MAX(A1:D1),"yyyy/m/d"),"施術履歴無") 結果をTEXTにしちゃってるから後で計算利用できないんでしょう それと文中の要求としてG列には「施術」「無し」「毎回確認」しか入らないはずなのに例には「次回予定」と入っているのも複雑に見せている要因だと思います 妙な所にMAXが入っているのも意図がわからないです では後はがんばってください

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセル関数、日数の平均値算出について

    顧客管理業務に活用する、エクセル関数の活用方法について質問です。 セルA1に『過去の施術日(1)』 セルB1に『過去の施術日(2)』 セルC1に『過去の施術日(3)』 セルD1に『過去の施術日(4)』 セルE1に『平均の施術頻度』 過去の施術日(1)~(4)には日付が記載されております。 そのデータを基に、E1『平均の施術頻度』の値を算出したいのです。 使用例 A1       B1       C1       D1         E1 2009/5/1   2009/6/15  2009/6/30  2009/7/8    平均の施術頻度 色々調べましたが、対応できなくて困っております。 恐縮ですが、ご助力の程お願い致します。

  • 複数セルに入力された日付から、最終日付を算出する

    顧客管理業務に活用する、エクセル関数の活用方法について質問です。 セルA1に『過去の施術日(1)』 セルB1に『過去の施術日(2)』 セルC1に『過去の施術日(3)』 セルD1に『過去の施術日(4)』 セルE1に『最終施術日』 過去の施術日(1)~(4)には日付が記載されております。 そのデータを基に、E1『最終施術日』の値を算出したいのです。 使用例 A1       B1       C1       D1         E1 2009/5/1   2009/6/15  2009/6/30  2009/9/8    最終施術日(2009/9/8) 2009/5/28  2009/6/30                    最終施術日(2009/6/30) 対応できなくて困っております。恐縮ですが、ご助力の程お願い致します。

  • エクセルでの関数の書き方

    セルA1からF1があります。 A1がC1かD1で同じでかつ B1がC1かD1で同じ場合に、 D1の値をF1にセットしたいのですが、 どのように書けばよろしいでしょうか? EX. A1が1でB1が2の場合は C1がD1が1,2または2,1の場合のみ E1の値をF1にセットします。 COBOLで書くとこんな感じになると思います IF (A1=C1 OR A1=D1) AND (B1=C1 OR B1=D1) THEN MOVE D1 TO F1 END-IF. IF関数かAND関数を使用するような気がしますが、 思いつきません。 よろしくお願いいたします。 エクセル2000です。

  • エクセルの関数を教えてください。

    セルHにIFとANDを使って下記内容の関数式を入力したいです。 セルAからセルF内すべてに数値が入っていたらセルFを返す、 セルFが空欄ならばセルEの数値を返す、 セルEも空欄ならばDの値を、 Dも空欄ならばCの値を、Cも空欄ならばBの数値を、 Bも空欄ならばAの数値を返し、 Aも空欄(つまりAからF内に数値なし)ならばスペースを返す。 わかる方、教えてください。 よろしくお願いします。

  • エクセルの関数について

    エクセルの関数で大至急お教えください。 セルA1の日付から3日後の翌営業日を算出する関数を教えて下さい。 今はセルA2にA1の3日後の日付を出す関数を入れ、 A3にA2から1日後の営業日を出すという方法を取っております。 A1:6/1 A2:=IF(A1="","",(A1+3)) A3:=IF(A2="","",WORKDAY(A2,1)) これを一つのセルに1つの関数で完結したいのです。 お分かりになる方がいらっしゃいましたら宜しくお願いいたします。

  • エクセル関数の質問です。

    エクセル関数の質問です。 A2のセルの4文字目がGならばD2セル+5、A2のセルの4文字目がFならばD2セル-10 その計算でD2のセルが5以下なら空白という関数を書きたのですがわかりません。 それぞれのIF文は以下のようにできたのですがこのIF文を一緒に書きたいのですがうまくいきません。 =IF(IF(MID(A2,4,1)="G",D2,D2+5)<=5,"",IF(MID(A2,4,1)="G",D2,D2+5)) =IF(IF(MID(A2,4,1)="F",D2,D2-10)<=5,"",IF(MID(A2,4,1)="G",D2,D2-10)) どうすればよろしいのでしょうか?どうかご教授よろしく願いいたします。

  • エクセル 関数の参照セルの変更

    ご教示お願いします。 =IF(C5=1,A5/B5,0)という式のC5の部分をD5,E5,F5・・・と変更したいのですが、式の中を手入力で変更するのではなく、他のセル(例えばセルA1)にD5,E5,F5・・・入力すると式C5の部分が変更されるようにしたいです。 例)セルA1にD5と入力すると関数=IF(C5=1,A5/B5,0)が=IF(D5=1,A5/B5,0)に変わるみたいにしたいです。セルA1にD5と入力するのが正しいやり方なのかはわかりませんが。

  • エクセルでIFとANDを使った関数について教えて下さい

    A B C D E F G 1 1 2 3 結果 2/3 2/4 2/5 2 2/3 2/4 2/5 合格 0 0 1 3 上記のような表を作成しようとしています。条件が、 D1が「合格」で、 C2の日付がE1(該当セル、E1なら2/3、F1なら2/4)と同じなら「1」、 違うなら「0」、 B2の日付がE1(該当セル、E1なら2/3、F1なら2/4)と同じで尚且つ、 C2が「空欄」なら「1」、違うなら「0」、 A2の日付がE1(該当セル、E1なら2/3、F1なら2/4)と同じで尚且つ、 C2が「空欄」で、B2が「空欄」なら「1」、違うなら「0」 を返しなさい。 という関数を作りたいのですが、上手くいきません。 IFとANDを使えばいいと思うのですが、どのように組み合わせれば 良いでしょうか。 真を返す、優先順位は、C2、B2、A2、のセルです。 C2に日付が入ってるときはB2とA2に日付が入っていても カウントされないように(偽が入るように)したいのです。 ちなみに、最初は、 =IF($D2="合格",IF($C2=E$1,1,IF($B2=E$1,1,IF($A2=E$1,1,0))),0) と、入れてましたが、これだと、C2に日付が入った時にC2だけカウント したいのに、B2もA2もカウントされてしまいます。 どうか、良きアドバイスをお願いします!!

  • エクセルの関数の貼り付け方法について

    エクセル2003を使用して関数計算表を作成しています。 IF関数の中にAND関数を使用して数式を作ったのですが そのままコピーしてしまうと変換してほしい数字が変換されません 下記に詳細を書きました エクセルのシート1にこのような基本形の数式があるとします =IF(AND(T4=2,D9=77),F8,"") 次にこの数式をシート2にコピーして =IF(AND(T6=2,D11=77),F10,"") というふうに変換したいのですが 現状ではコピーして貼り付けが終わった状態から 手で数字を一文字ずつ消して打ち直していますが膨大なデータ量でして 大変苦労をしています 何とか皆様のお知恵をお借りしたいと思いまして質問させていただきました よきアドバイス宜しくお願いいたします すみません。補足をします。 シート1のセルA1の数式がこれです =IF(AND(T4=2,D9=77),F8,"") このシート1のセルA1の数式 =IF(AND(T4=2,D9=77),F8,"")を シート2のセルA1にコピーして =IF(AND(T6=2,D11=77),F10,"") という数式にしたいのです 現状ではシート2のセルA1に貼り付けが終わった =IF(AND(T4=2,D9=77),F8,"")を T4→T6へ、D9→D11へ、F8→F10へ一つ一つ手入力で 修正しております。膨大なデータ量です(涙) お願いします

  • Excel : 関数での分岐

    こんにちは。よろしくお願いします。 エクセルで英単語帳を作ったのですが、復習すべき日にちを決めるとき、D列に今日の日付、E列に1~7の整数、F列に関数を入れるとして、 1→1日後にやる 2→3日後にやる 3→5日後にやる 4→7日後にやる 5→13日後にやる 6→30日後にやる 7→60日後にやる というような設定を、IF関数を使って =IF(E2=1,D2+1,IF(E2=2,D2+3,IF(E2=3,D2+5,IF(E2=4,D2+7,IF(E2=5,D2+13,IF(E2=6,D2+30,IF(E2=7,D2+60,"入力し直し"))))))) のようなことやっているのですが、こういう関数の使い方は、壊れやすい(暴走しやすい)のではないかと不安です。(今のところ普通に動いてはいます。) このままデータが増えればこわれる可能性はあるのでしょうか。 また、関数を使ったもっと賢い方法があるのでしょうか。 マクロのことは分からないのでそれを使わない方法で、 関数だけを使ったより良い方法があれば教えてください。 分かりにくい文章ですいません。 よろしくお願いします。