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

私の知識不足の為どうすればいいのか困っています。どうぞお願いします。
シート1に

  | A  | B | C | D |
--|-----|----|----|----|---
1 |田中 |   |   |   |
--|-----|----|----|----|---
2 |佐藤 |   |   |   |
--|-----|----|----|----|---
3 |鈴木 |   |   |   |
--|-----|----|----|----|---
4 |山田 |   |   |   |

シート2に

  | A  | B | C | D |  E |  F   
--|-----|----|----|----|----|----
1 |    | 1  | 2  | 3  | 4   | 5
--|-----|----|----|----|----|----
2 |田中 |   |   |   |   |  
--|-----|----|----|----|----|----
3 |佐藤 |    |   |    |   |  
--|-----|----|----|----|----|----
4 |鈴木 |    |   |    |   | 
--|-----|----|----|----|----|----
5 |山田 |    |   |    |   |

とあったとします。(シート2の横に並んだ数字は日にちです。)
(シート1は入力用シート、シート2は印刷用シートとして使います。)
例題として、田中さんは2日と3日が入院。5日が外出すると仮定して、
シート1のB1に"2n"、C1に"3n"、D1に"5g"と入力したら、
シート2のC2に"入"、D2も"入"、F2が"外"と表示させたいの
です。

色々試行錯誤しましたが、一向にできず、困っています。
お手すきの時がありましたら、回答お願い致します。

A 回答 (2件)

次の方法は如何でしょうか。


Sheet2のB1に以下の数式を設定、縦横にコピーして下さい。
因みにSheet1の入力データ、sheet2の1行目は半角の数値、sheet1の列範囲は固定で30列としています。
=IF(COUNTIF(OFFSET(Sheet1!$A$1,MATCH($A2,Sheet1!$A:$A,0)-1,,,30),B$1&"n"),"入",IF(COUNTIF(OFFSET(Sheet1!$A$1,MATCH($A2,Sheet1!$A:$A,0)-1,,,30),B$1&"g"),"外",""))
    • good
    • 0
この回答へのお礼

本当に本当にありがとうございました。
おかげさまで、完成いたしました。

お礼日時:2009/02/04 15:21

とりあえず、A列がシート1,2とも全く同じ順序だとしても、


(これが違うともっと大騒ぎになります)問題になるのが「シート
1の最大入力件数が不定」ということなんです。

シート1の最大入力件数が一定かつ少数なら、こんな感じでIF文を
重ねれば可能なんですが、

2列目:=IF(LEFT(B1,1)="2",IF(RIGHT(B1,1)="n","入",IF(RIGHT(B1,1)="g","外","")))
&IF(LEFT(C1,1)="2",IF(RIGHT(C1,1)="n","入",IF(RIGHT(C1,1)="g","外","")))
&・・・

3列目:=IF(LEFT(B1,1)="3",IF(RIGHT(B1,1)="n","入",IF(RIGHT(B1,1)="g","外","")))
&IF(LEFT(C1,1)="3",IF(RIGHT(C1,1)="n","入",IF(RIGHT(C1,1)="g","外","")))
&・・・

やはり、VBAを使って関数を作るしか無さそうな気はしますが、関数
だと思いっきり処理速度が遅くなりそうです。「ボタンを押したら計算
してくれる」というプログラム型にするのが現実的な解のように思い
ますけど・・・。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
NO.2の方を使ってうまくいきました。
お時間さいてくださりありがとうございました。

お礼日時:2009/02/04 15:29

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