アプリ版:「スタンプのみでお礼する」機能のリリースについて

教えて下さい。こんな事出来るかどうか判りませんが、
例えばA1に無差別の数字入力をしたとして
例1.A1に25を入力→B1に7と表示
例2.A1に5を入力→B1に5と表示
例3.A1に11を入力→B1に11と表示
例4.A1に29を入力→B1に11と表示
要するに単数表示にしたい訳です。同数なら同数に・・。
例1なら25を分解して2+5で7
例2なら5は分解できないのでそのまま5
例3なら11は同数なので11のまま表示
例4なら29を分解して2+9で11だが同数なのでそのまま
というふうに・・
果たしてできるのでしょうか・・?
尚、A1に入力するのは二桁までです。
そんな事、自分で勉強しろといわれそうですが・・
ここで質問した方が早いので・・。すいませんが関数式の事なら私にまかせろというくらいのプロの方・・
是非お願い致します。

A 回答 (5件)

こういう条件が複雑なのはユーザー関数がお勧めです。


縦に並べて条件を書けるからです。
標準モジュールに
Function tansu(a)
p01:
If a < 10 Then
tansu = a
Exit Function
Else
x = a Mod 10
y = Int(a / 10)
If x = y Then
tansu = a
Exit Function
Else
a = x + y
End If
End If
GoTo p01
End Function
と入れて、A列に1か2桁の数字を入れます。
B1に=tansu(A1)といれA1をB2以下に複写します。
(テスト例)
(A列)(B列)
1111
213
3333
4444
516
257
55
2911
191
685
    • good
    • 0

数字が必ず2桁(10~99)なら


=IF(LEFT(A1,1)<>RIGHT(A1,1),LEFT(A1,1)+RIGHT(A1,1),A1)
で計算できます。
    • good
    • 0

=IF(INT(A1/10)=MOD(A1,10),


  A1,
  IF(INT((INT(A1/10)+MOD(A1,10))/10)=MOD(INT(A1/10)+MOD(A1,10),10),
    INT(A1/10)+MOD(A1,10),
    INT((INT(A1/10)+MOD(A1,10))/10)+MOD(INT(A1/10)+MOD(A1,10),10)))

長い式になったので見やすいように複数行にしています。
セルに入力するときは1行で入力してください。

考え方としては、『再帰』でしょうが、2回しか必要ないので無理やり書いてみました。質問の意味を捉えているでしょうか。


他の方法としては、

(1)事前に2桁の数字に対する計算をして変換テーブルを用意しておき、入力した数値でそのテーブルを検索する。VLOOKUP関数でできます。

(2)ユーザー定義関数で計算を定義する。VBAを使用します。扱う桁が増える場合はこれしかないでしょう。
    • good
    • 0

こんにちは。

maruru01です。

B1に、

=IF(COUNT(A1),IF(INT(A1/10)=MOD(A1,10),A1,INT(A1/10)+MOD(A1,10)),"")

と入力します。

なお、No.1の方の回答は、例3の「11」→「11」を満たしていませんね。

この回答への補足

ありがとうございます。すいません、私の質問が悪かったみたいです。maruru01さんの式でほぼ完璧なのですが、
19や68を入力するとそれぞれ10と14になってしまうのです。1と5になるよう最後まで単数変換にて表示したいのです。お願いします。

補足日時:2004/01/21 12:50
    • good
    • 0

B1列に


=IF(A1>=10,VALUE(LEFT(A1,1)+RIGHT(A1,1)),A1)
以上の式で可能ですが・・・
    • good
    • 0

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