初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2019-02-24 11:57:20

岡山のジサマ
Guest

エクセルSUMPRODUCT関数をファイルメーカーで使用するには

7桁の伝票番号のチェックデジットを求める計算式が下記の通りです。
=CHOOSE(MOD(SUMPRODUCT(MID(TEXT(B19,"0000000"),{1,2,3,4,5,6,7},1)*{2,7,6,5,4,3,2}),11)+1,0,0,9,8,7,6,5,4,3,2,1)
※B19が7桁の伝票番号です
※ちなみに1111111の伝票番号を入力した場合、チェックデジットは4で計算されます。
ファイルメーカーでは計算式をどのようにすればよいか、ご教授よろしくお願いいたします。
Win10 FMP16を使用しています。

#2 2019-02-24 14:30:59

Shin
Member

Re: エクセルSUMPRODUCT関数をファイルメーカーで使用するには

ベタで書くと、

Let (
[
 se = B!9 ;
 wt = List ( 2;7;6;5;4;3;2 ) ;
 ss = Mod ( Div ( se ; 10 ^ 6 ) ; 10 ) * GetValue ( wt ; 1 )
 + Mod ( Div ( se ; 10 ^ 5 ) ; 10 ) * GetValue ( wt ; 2 )
 + Mod ( Div ( se ; 10 ^ 4 ) ; 10 ) * GetValue ( wt ; 3 )
 + Mod ( Div ( se ; 10 ^ 3 ) ; 10 ) * GetValue ( wt ; 4 )
 + Mod ( Div ( se ; 10 ^ 2 ) ; 10 ) * GetValue ( wt ; 5 )
 + Mod ( Div ( se ; 10 ^ 1 ) ; 10 ) * GetValue ( wt ; 6 )
 + Mod ( Div ( se ; 10 ^ 0 ) ; 10 ) * GetValue ( wt ; 7 )
] ;
 Choose ( Mod ( ss ; 11 ) ; 0;0;9;8;7;6;5;4;3;2;1)
)

珍しいウェイトですね。

Last edited by Shin (2019-02-24 18:25:45)

Offline

#3 2019-02-24 18:24:16

Shin
Member

Re: エクセルSUMPRODUCT関数をファイルメーカーで使用するには

桁数に依存しない様に書くと(ウェイトの設定による制限あり)

Let (
[
	$se = B19 ;
	$wt = List ( 2;7;6;5;4;3;2 ) ;
	$cs = 0 ;
	$fnc = "Case ( 
			IsEmpty ( $se ) ; $cs ;
			Let ( 
			[ 
				$cs = $cs + Right ( $se ; 1 ) * RightValues ( $wt ; 1 ) ; 
				$se = Left ( $se ; Length ( $se ) - 1 ) ; 
				$wt = LeftValues ( $wt ; ValueCount ( $wt ) - 1 )
			] ;
			 Evaluate ( $fnc ) 
			) 
		)"
] ;
	Mod ( Mod ( 11 - Evaluate ( $fnc ) ; 11 ) ; 10 )
)

Last edited by Shin (2019-02-25 08:45:21)

Offline

#4 2019-02-25 06:56:46

岡山のジサマ
Guest

Re: エクセルSUMPRODUCT関数をファイルメーカーで使用するには

Shinさん早速の回答ありがとうございます。
当方の頭では一日かけても解決しませんでした。
無事に計算するようになりました。
今後も宜しくお願いいたします。

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.005 seconds, 9 queries executed - Memory usage: 549.41 KiB (Peak: 581.51 KiB) ]