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

ある数値(677001)の一番右(1)を奇数として、すべての数字を奇数位置と偶数位置に分類し、奇数位置の数字を3倍して合計を出したいのですが。ある数値は、毎回桁数が異なります。

A 回答 (3件)

奇数位置とか偶数位置とか考えるから判らなくなるわけで、素直に


一の位と百の位と万の位と…と取り出していくと思えばたいしたこ
とないですね。

一の位: =mod(x,10)
百の位: =mod(int(x/100),10)
万の位: =mod(int(x/10000),10)

あとは好きなように加工して合計して下さい。ちなみにExcelの有効
桁は15桁くらいしかないので、延々と桁が増えてく心配はないです。
    • good
    • 0
この回答へのお礼

なるほど、そういう考え方でやる方法もありますね。
ありがとうございました。

お礼日時:2006/05/01 13:28

マクロで。


>奇数位置の数字を3倍して
の部分は
奇数位置の数字をそれぞれ3倍して
と解釈しました。
---
Function m(d As String) As Long
Dim i As Long
Dim s As Long
s = 0
For i = Len(d) To 1 Step -2
s = s + CLng(Mid$(d, i, 1)) * 3&
Next
m = s
End Function
    • good
    • 0

「位置に分類」の意味が分からないけど、すべての奇数の和の3倍を出せばよいのなら、


{=SUM(list*MOD(list,2))*3} (配列数式)
でOKかと。

それとも奇数の1の位の総和の3倍ですか?それなら
{=SUM(MOD(list*MOD(list,2),10))*3} (配列数式)
でOKかと。
    • good
    • 0

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