• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:前レコードを参照するには)

前レコードを参照するには

このQ&Aのポイント
  • コードに99が入っている最新フラグがたっているレコードの前の履歴のレコードを別シートに表示する方法について教えてください。
  • 早急に教えていただきたいですが、下記のレコードについて前の履歴のレコードを別シートに表示するための関数を教えてください。
  • 質問ですが、コードに99が入っている最新フラグがたっているレコードの前の履歴のレコードを別シートに表示させるにはどのような関数を使用すればよいですか?

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

例データ Sheet1 A1:F8  H列は作業列 1 No. 履歴 最新フラグ 商品 コード H列 2 1001 1 0 りんご 99 3 1001 2 0 りんご 99 4 1001 3 1 りんご 99 1 5 1002 1 0 みかん 30 6 1002 2 1 みかん 30 2 7 1003 1 0 かぼちゃ 99 8 1003 2 1 かぼちゃ 99 3 H列H2の式は =IF(D2=0,"",MAX($H$1:H1)+1) D列で1の行に連番を振っている。 ーーー Sheet2 結果 A2:F4 3 1001 2 0 りんご 99 5 1002 1 0 みかん 30 7 1003 1 0 かぼちゃ 99 A2の式は =INDEX(Sheet1!$A$1:$H$10,MATCH(ROW()-1,Sheet1!$H$1:$H$10,0)-1,COLUMN()) 前の行ということでー1が入っている。 F2まで横方向に式複写 A2:F2の式をA4:F4まで式複写。 ーー Imogasi方式(Googleで照会すれば同じような方法の応用が多数出る) 式の複写を多数行にしすぎるとSheet2の第5行以下の#N/Aの表示が出るが、それを防ぐにはSheet1のH列のMAXよりRow()-1が超えたら空白を返すようにする。 I関数をかぶせる。

heavycrewz
質問者

お礼

大変遅くなりました。 無事うまくできました。 ありがとうございました。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

この質問の表現は、独りよがりではないか。 >前の履歴のレコード の意味がはっきりしない。質問例では>最新フラグ が1なのは第4行目だが セルの値が1はC列では1行しかないのか?。 第4行の履歴は3なので「前」は3-1の2で、それをB列で探せば良いか。 B列は飛んだ番号は振られて無いのか? ーー それらを、やさしいほうに勝手に解釈して 例データ A-E列 No. 履歴 最新フラグ 商品 コード 1001 1 0 りんご 99 1001 2 0 りんご 99 1001 3 1 りんご 99 例えばA8に INDEX($A$1:$E$4,MATCH(INDEX($A$1:$E$4,MATCH(1,$C$1:$C$4,0),2)-1,$B$1:$B$4,0),COLUMN()) 右方向に式を複写で 結果 A-E列 1001 2 0 りんご 99 こんなので良いのか。

heavycrewz
質問者

補足

回答ありがとうございます。 表現があいまいで申し訳ありません。 解釈はおっしゃるとおりです。 追記しますと     A     B     C      D     E 1  No.    履歴  最新フラグ  商品   コード 2 1001    1     0     りんご    99    3 1001    2     0     りんご    99 4 1001    3     1     りんご    99 5 1002    1     0     みかん    30 6 1002    2     1     みかん    30 7 1003    1     0     かぼちゃ   99 8 1003    2     1     かぼちゃ   99 というようにレコードが入ってきております。 これを先ほどの条件で抽出が可能でしょうか?

関連するQ&A