• 締切済み

Excelでの関数式を教えて下さい。

教えて下さい。こんな事出来るかどうか判りませんが、 例えば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に入力するのは二桁までです。 そんな事、自分で勉強しろといわれそうですが・・ ここで質問した方が早いので・・。すいませんが関数式の事なら私にまかせろというくらいのプロの方・・ 是非お願い致します。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.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列) 11 11 21 3 33 33 44 44 51 6 25 7 5 5 29 11 19 1 68 5

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.4

数字が必ず2桁(10~99)なら =IF(LEFT(A1,1)<>RIGHT(A1,1),LEFT(A1,1)+RIGHT(A1,1),A1) で計算できます。

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.3

=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を使用します。扱う桁が増える場合はこれしかないでしょう。

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.2

こんにちは。maruru01です。 B1に、 =IF(COUNT(A1),IF(INT(A1/10)=MOD(A1,10),A1,INT(A1/10)+MOD(A1,10)),"") と入力します。 なお、No.1の方の回答は、例3の「11」→「11」を満たしていませんね。

naozzz
質問者

補足

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

回答No.1

B1列に =IF(A1>=10,VALUE(LEFT(A1,1)+RIGHT(A1,1)),A1) 以上の式で可能ですが・・・

関連するQ&A

専門家に質問してみよう