一桁の計算

一桁の計算

計算後の結果セル内の関数を Excel で見つける方法を教えてください。

ID     Result  Calculation  
12345  6       >>1+2+3+4+5=15   >>1+5   =6  
21436  6       >>2x1x4x3x6=144  >>1x4x4 = 16 >>1x6  =6  
12345  2       >>1x2x3x4x5=120  >>1x2   =2    Omit zero digit

答え1

まず、ひどく複雑なコードが欲しくないなら、マクロに組み込む必要があります。1 つのセルに組み込もうとすると、おそらく 200 文字以上になり、デバッグが不可能になります。

このようなもの:

assuming var "in" contains the string

accumulator=0
for a=1 to len(in)
accumulator=accumulator*value(mid(trim(in),a,1))
next a

sum=0
while accumulator>9
for b=0 to len(accumulator)
sum=sum*value(mid(trim(accumulator),a,1))
next b
accumulator=sum
sum=0
wend

注記: 不明な基準に基づいて乗算から加算に切り替えるため、そのためのコードを記述できませんでした。

答え2

加算の場合、1 行目に従って、次のように 1 桁に減算できます。

=MOD(A2-1,9)+1

しかし、掛け算でも同じことをしたいですか?サイバーナードが言うように、どちらを使用するかをどのように決定するのかわかりません。別の掛け算式では、最大3回の反復と元の桁数が最大10であると仮定して、次の式を試してください。

=PRODUCT(SUBSTITUTE((0&MID(PRODUCT(SUBSTITUTE((0&MID(PRODUCT(SUBSTITUTE((0&MID(A2,ROW(INDIRECT("1:10")),1))+0,0,1)+0),ROW(INDIRECT("1:10")),1))+0,0,1)+0),ROW(INDIRECT("1:10")),1))+0,0,1)+0)

確認済みCTRL+ SHIFT+ENTER

関連情報