• ベストアンサー

関数 1の位と10の位の足し算更に足して2~10に

誕生日の日(下2桁)と入力した日付(下2桁)を足して2から10の数値にしたいのですが。 例、29+29=58を5+8=13=4(欲しい値)   23+23=46を4+6=10(欲しい値) A2に当日の日付B2に誕生日C2に欲しい値 入力は半角数字で入れます。 宜しくお願い致します。

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

  • ベストアンサー
  • mt2015
  • ベストアンサー率49% (258/524)
回答No.9

C2セルに↓でいけそうに思えます。 =IF(MOD(DAY(A2)+DAY(B2),9)<=1,9,0)+MOD(DAY(A2)+DAY(B2),9) また、数式バーにカーソルを移動してエンターを押さないと答えが出ないのは、演算が手動になっているように思えますのでご確認ください。

annsyuu38
質問者

お礼

自動にしたら解決しました。ありがとうございました。

annsyuu38
質問者

補足

コピーしました。いけますね。ありがとうございました。短い数式なのに素晴らしいです。

その他の回答 (9)

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.10

>エンターを押さないと答えがでませんが?そーいうものですか? 既に回答が付いてますが、計算方法が手動になってます。 計算方法を自動に設定するか?手動のままでF9(再計算)を押して計算させればいいでしょう。 ・Excel 2010で計算結果の更新を自動(手動)で行う方法 https://121ware.com/qasearch/1007/app/servlet/relatedqa?QID=012854

annsyuu38
質問者

お礼

解決しました~。手動になってました。 ありがとうございました。

  • Chiquilin
  • ベストアンサー率30% (94/306)
回答No.8

=MOD(SUM(MID(SUM(DAY(A2)+DAY(B2))&0,{1,2},1)/1)-2,9)+2 あんまりちゃんと検証してません。

annsyuu38
質問者

お礼

皆さんのを貼り付けて検証してますが、これもいけますね。 ありがとうございます。

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.7

>数式バーにカーソルを移動してエンターを押さないと答えが出ないのですが。 ??? どのような現象なのか別の言い回しで説明し直してください。 回答の数式をコピーしてセルにそのまま貼り付けると正しい数式になりませんので、数式バーへ貼り付けてからEnterキーで確定することになります。 2から10もでの範囲に拘るときは次の数式に変更してください。 =IF(DAY(A2)+DAY(B2)<11,DAY(A2)+DAY(B2),IF(INT((DAY(A2)+DAY(B2))/10)+MOD(DAY(A2)+DAY(B2),10)<11,INT((DAY(A2)+DAY(B2))/10)+MOD(DAY(A2)+DAY(B2),10),INT((INT((DAY(A2)+DAY(B2))/10)+MOD(DAY(A2)+DAY(B2),10))/10)+MOD(INT((DAY(A2)+DAY(B2))/10)+MOD(DAY(A2)+DAY(B2),10),10)))

annsyuu38
質問者

お礼

計算方法を自動にしたら解決しました。何度も教えていただきありがとうございました。

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.6

>11は2にならないと、、、 最初から画像を添付すれば2度手間にならないです。 A列とB列に日付のシリアル値が入力されているようですから、それを例に数式の組み直しを行ってみます。 1から9までの1桁に収めるには次の数式で良いと思います。 =INT((INT((DAY(A2)+DAY(B2))/10)+MOD(DAY(A2)+DAY(B2),10))/10)+MOD(INT((DAY(A2)+DAY(B2))/10)+MOD(DAY(A2)+DAY(B2),10),10) つまり、 INT((DAY(A2)+DAY(B2))/10)+MOD(DAY(A2)+DAY(B2),10) → INT((13+23)/10)+MOD(13+23,10) → 3+6 → 9 これを更にINT((9/10)+MOD(9,10) → 0+9 → 9のように多重化すれば前の回答で11となった値が2になります。 応用の範囲で数式の変更により解決できます。 毎月の最終日の最大値が31であり、2つの日付の日にちのみ加算すると最大値が62です。 従って、INT([日]/10)+MOD([日],10)が2から62の値になります。 これを10の位と1の位を各々1桁の数値として加算し、最終的に1桁にすると1から9までの間に収まります。(2から10にするにはIF関数で条件分岐する必要がある) 1から10までの場合は次の数式のようにしなければなりません。 =IF(INT((DAY(A2)+DAY(B2))/10)+MOD(DAY(A2)+DAY(B2),10)<11,INT((DAY(A2)+DAY(B2))/10)+MOD(DAY(A2)+DAY(B2),10),INT((INT((DAY(A2)+DAY(B2))/10)+MOD(DAY(A2)+DAY(B2),10))/10)+MOD(INT((DAY(A2)+DAY(B2))/10)+MOD(DAY(A2)+DAY(B2),10),10)) 2から10までの結果が必要な時は更にIF関数で分岐しなければなりませんので、数式が長すぎます。 あなたが変更してみると数式の扱い方が理解できるようになりますので、挑戦してみてください。

annsyuu38
質問者

お礼

私には難しすぎます。でも少しずつやっていきますのでまたご教授お願いします。 どうもありがとうございました。

annsyuu38
質問者

補足

数式バーにカーソルを移動してエンターを押さないと答えが出ないのですが。

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.5

=IF((DAY(A2)+DAY(B2))<11,DAY(A2)+DAY(B2),IF((MOD(DAY(A2)+DAY(B2),10)+INT((DAY(A2)+DAY(B2))/10))<11,MOD(DAY(A2)+DAY(B2),10)+INT((DAY(A2)+DAY(B2))/10),MOD(MOD(DAY(A2)+DAY(B2),10)+INT((DAY(A2)+DAY(B2))/10),10)+1))

annsyuu38
質問者

補足

入力しても答えは変わらず数値バーにカーソルを合わせて後エンターを押さないと答えがでませんが?そーいうものですか?

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.4

 済みません。コピーミスが原因で回答No.2の関数には一部間違いがありました。  正しい関数は次の様なものになります。 =IF(ISERROR(1/DAY($A2)/DAY($B2)),"",IF(DAY($A2)+DAY($B2)>10,IF(INT((DAY($A2)+DAY($B2))/10)+MOD(DAY($A2)+DAY($B2),10)>10,INT((INT((DAY($A2)+DAY($B2))/10)+MOD(DAY($A2)+DAY($B2),10))/10)+MOD(INT((DAY($A2)+DAY($B2))/10)+MOD(DAY($A2)+DAY($B2),10),10),INT((DAY($A2)+DAY($B2))/10)+MOD(DAY($A2)+DAY($B2),10)),DAY($A2)+DAY($B2)))

annsyuu38
質問者

お礼

誕生日には年は入れませんが欲しい結果は合ってます。excelにコピーして やってみます。

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.3

>誕生日の日(下2桁)と入力した日付(下2桁)を足して2から10の数値にしたいのですが。 例として、誕生日=1月23日、入力した日付=11月13日とします。 23+13 → 36 → 3+6 → 9 A2に入力されている日付とは上の例で13ですか? B2は同様に23と言うことでしょうか? 例えば、誕生日が2月3日のときはB2が3と入力されるのでしょうか? A2が1113でB2が123や203と入力されていると数式の組み立て方が異なるのでA2セルとB2セルの値がどのようになっているかの例示を補足してください。 2から10までには収まらないようです。 添付画像で使った数式は次の通りです。 =INT((MOD(A2,100)+MOD(B2,100))/10)+MOD(MOD(A2,10)+MOD(B2,100),10)

annsyuu38
質問者

補足

11は2にならないと、、、

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.2

 C2セルには次の様な関数を入力して下さい。 =IF(ISERROR(1/DAY($A2)/DAY($B2)),"",IF(DAY($A2)+DAY($B2)>10,IF(INT((DAY($A2)+DAY($B2))/10)+MOD(DAY($A2)+DAY($B2),10)>10,INT((INT((DAY($A2)+DAY($B2))/10)+MOD(DAY($A2)+DAY($B2),10))/10)+MOD(INT((DAY($A2)+DAY($B2))/10)+MOD(DAY($A2)+DAY($B2),10),10),INT((DAY($A2)+DAY($B2))/10)+MOD(DAY($A2)+DAY($B2),10)),DAY($A2)+DAY($B2)>10))

回答No.1

>29+29=58を5+8=13=4 INT(58/10)+(58-((INT58/10)X10))=(58/10は5.8となりINTで小数点以下切り捨てなので5となります、1桁目は58-(5X10)=8)

関連するQ&A

  • Excelで値と値をくっつけたり、+1する方法を教えてください

    添付した画像のような表を作成しています(添付用に加工しています) A列とB列は、手入力します。  A列:2桁の半角英数  B列:3桁の半角英数 C列に入るものは、  11(固定された数字)+A列の値+B列の値+001から始まる連番 ですので、3行目でいうとC3に「11 A1 B22 001」(分かりやすく半角スペースを空けています)      4行目ですとC4に「11C3D44002」 という値をA列、B列に入力をしたら、C列に上記のような10桁の値を 自動で入力されるしたいのですが、関数などで行うことでできないものかと思い質問しました。 現状は、C列も手入力で行っておりまして、  ・最初の2桁は、固定数値  ・A列とB列の値を使用している  ・最後の3桁は001からの連番を使用している    ※終わり3桁は無条件で001~の連番にしている もし関数などで対応可能でありましたら、どのような数式にすればよいのか ご教示頂けるとありがたく思います。 よろしくお願い致します。

  • EXCELでの日付表示の方法

    初心者ですみません。 EXCELで日付を表示する方法の質問です。 例えば、同一ブックの別のシートのあるセル(例えばB2)に6桁の日付の数字(例211229  和暦)が入力されているとして、その数値の下4桁のみを別のシートの例えばC2セルで12月29日と表示させるにはどうしたらよいのでしょうか? MODで6桁の数字を10000で割れば、余りとして1229が得られますが・・・。 よろしくお願いいたします。

  • Excel関数

    a × b = c という計算式で計算する場合。 a は、変わらず常に一定の数値で b だけを随時変えて入力します。 しかし、計算結果の c の値が一定の数値(xとする)に達すると それ以降は、b に、どんな値を入力しても常に x と表示させたいのです。 例   2 × 6 = 12 2 × 7 = 14 2 × 8 = 16 2 × 9 = 18 2 × 10 = 20 2 × 11 =20 2 × 12 = 20  2 × 13 = 20 どうぞよろしくお願い致します。

  • エクセル関数について

    質問なんですがよろしくおねがいします。   A      B      C           D           E 1      753      487      例900       例994 2      15      887 3      699      573 4      827      495 5      797      345 6      994      203 7      300      95 8      481      710 9      379      416 10      893      956 11      585      134 12      877      702 13      100      311 14      954      679 15      317      24 上のB,C列の不規則な2列の数字の中から  例えばD1に900と入力したらB2、C2から下に同時に探していって   900以上の最初に合った数値をE1に求める方法がわかりません。  わかる方がいましたらご教授の程よろしくお願いします。 

  • ○進数の計算

    直接VisualBasicとは関係ないですが、VBAのプロジェクトで ○進数の考え方で、英字を数値へ 数値を英字へ変換しているのですがどうしても理解できない事があります。 A B C AA AB AC BA ・ ・ ・ 上記のような法則があるとします。 A-Cを数字に置き換えます。 A -> 0 B -> 1 C -> 2 文字→数値の計算式は 1桁目 A-Cの数値×3回毎に繰り上がるので3×1桁目は0乗 2桁目 A-Cの数値×3回毎に繰り上がるので3×2桁目は1乗 Aを数字に置き換えると 1桁目 Aは、0*3の0乗=0です。 期待通りです。 AAを数字に置き換えると 1桁目 Aは、0*3の0乗=0です。 2桁目 Aは、0*3の1乗=0です。 0 + 0 = 0 期待している値は3です。 BCを置き換えると 1桁目 Cは、2*3の0乗=2 2桁目 Bは、1*3の1乗=3 2 + 3 = 4 期待している値は8です。 3を文字に置き換えると 数字÷3回毎に繰り上がるので3 = 商 ・・・余り 余りで、文字列を引いてきます。 3÷3=1 ・・・0 -> A 2桁目は、1回目の商÷3       1÷3=切捨てで0 ・・・1 - > B B + A = BA 期待値はAAです。 これらは、1つずれて期待している値とは違う値が返ってきていると思うのですが、考え方で理解することができません。 どうしてこのようなことになるのでしょうか? 頭が混乱して考えても分かりません。よろしくお願いします。

  • Excelで、1の位、10の位・・・を出す

    例えばA1に23000と入力されていて、A2から横に用意されている7個のセルに1桁ずつA1から読み取った数字を、A2=空白、B2=空白、C2=2、D2=3、E2=0、F2=0、G2=0、と位ごとに出したい事です すみませんがよろしくお願いします

  • エクセル 関数

    1行AからGまでに数字があり、 2行AからGまでの数字の下一桁が1行目のAからGまでと同じ場合 3行目に2行目の数字を抽出する関数を教えてください。 例   A  B  C  G 1 15 18  21  33 2 25 19  30  31 3 25        31

  • エクセルの関数

    質問させていただきます。 旅行のバスの台数を計算します。 A1~20までに、はじめから1~20までの数値が入っています。これがバス台数となります。 B1から、バスが運行する度にその日の日付を入力します。 日付が入っているところまでが実際のバスの台数となります。 たとえば、B列の日付がA列の13まで入力されたら、バスの台数は13台ということになります。 それを、C1に自動で入るようなことはできますでしょうか? B列のある場所に値が入ったら、A列のここをイコールとしてC1に出すような。でも常にB列の一番下を参照させないといけないんですよね。 説明が下手で申し訳ありません。 ご理解頂けましたらご教授お願い致します。

  • エクセル関数

    次のようにセルに日付と対応する数値があるときに | 2003/4/1 | 2003/8/1 | 2004/3/1 | |****a****|****b*****|****c****| 2003/4/1から2003/10/1に値する期間の数値の合計 "(a+b)" を出すにはどのような関数を使えばいいのでしょうか。 お願いします。

  • 関数について教えて下さい。

    A列に日付があって、B列(C列、D列…)に無作為に値が入っています。 B列(C列、D列…)の最後に入力された日から現在の日付までの空白を数えたいのです。 全然わからないので、よろしくお願いします。

専門家に質問してみよう