現在検査の実績表を作成しています。  
水色の背景色の部分が数式が入っておらず、手入力の部分になります。  
G列とH列に数式を入れて自動で算出されるようにしたいと思っていますがそこに入れる関数が上手く組めなくて困っています。  
当方関数など初心者で、ネットで調べながら何とか作り上げていっている状態ですので、何かアドバイスいただけますと大変ありがたいです。

[![画像の説明をここに入力](https://i.stack.imgur.com/BWIoQ.png)](https://i.stack.imgur.com/BWIoQ.png)

**◆項目の説明**  
A列＝生産日 ：生産した日付  
B列＝生産回数/日 ：その日に生産を行った回数。1度の生産で200個前後の製品が作れます。  
12/27ですと3回生産を行っています。  
C列＝1次or2次検査：生産した製品を2回検査しています。その検査が1回目の検査か2回目の検査かを表しています。  
D列＝作業数 ：1回の生産で作った製品の数を表しています。  
最終的にいくつ作業数があったか知りたいため、2次検査の行は空欄にしています。  
E列＝試料数 ：試験のために抜き取った製品の数です。  
F列＝検査済 ：A～F列を毎朝入力し、検査が終わったらF列に〇を記入します。

**◆問題点**  
画像の状態は簡単な数式が入っている状態です。

G2:ARRAYFORMULA(IF(F2:F="","",D2:D-E2:E))  
H2:ARRAYFORMULA(IF(F2:F="","",G2:G-I2:I))

この状態ですと、2次検査の行の作業数(D列)が空白のため、検査数(G列)が空白になり、良品数(H列)が正しい数値を示しません。  
2次検査の検査数(G列)は1次検査の良品数(H列)を示すように関数を組みたいと思っています。

**◆やったこと**  
とりあえず「同じ生産日」「同じ生産回数」「2次検査」と一致する条件の「良品数の値」を返すように関数を組んでみました。  
↓  
ARRAYFORMULA(IFS(F2:F="","",D2:D<>"",D2:D-E2:E,D2:D="",INDEX(H2:H,MATCH(A2&B2&2,A2:A&B2:B&C2:C,0))))

ですがこれですとH2はG2を基に計算され、G2はH2を基に計算され…と計算を永遠に繰り返すようになっているのだと思います。セルの値がピクピクしてパソコンがうなってしまいました。  
※上記の数式で果たして合っているのかは別とします。

また、セル番地で値を参照しようともしましたが、C列の「1次or2次検査」が必ず1,2,1,2...と交互に並ぶわけではないのでその方法はダメでした。

何か少しでも解決できるようなアドバイスを頂けますと本当にありがたく思います。  
説明が不足している点がありましたらご指定頂けるとありがたいです。

以上宜しくお願い致します。
CC BY-SA 4.0
2022-02-02T08:47:41.823
86100
2022-02-02T11:25:39.687
2022-02-02T08:54:03.053
3060
51218
question
google-spreadsheet
Googleスプレッドシートの関数に関して
1次検査の検査数＝作業数-試料数  
1次検査の良品数＝検査数-不良数  
2次検査の検査数＝同日同生産回数の1次検査良品数  
2次検査の良品数＝検査数-不良数  
であっていれば、以下で出来るかとおもいます。

G列：  
=if(D2=1,E2-F2,index($B$2:$H$13,
match(B2&C2&1,$B$2:$B$13&$C$2:$C$13&$D$2:$D$13,0),7))

H列：  
=G2-I2
CC BY-SA 4.0
2022-02-02T11:25:39.687
86103
2022-02-02T11:25:39.687
50861
86100
answer