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

以前、質問した内容で追加で知りたい事があります。
質問内容を一番下に載せるのでどうか助けて下さいm(__)m

※以前の質問内容からの流れを載せています。

-----------------------------

≪目的≫
データベースに入力したデータをチェックするだけで、自動的に別シートに反映、表としてまとまるようにしたい。

--------------

〈データベース〉
OPEN  名前  レベル  条件①  A  B  C
□    あ   良    1    ○
□    い   普通   2       ○
□    う   普通   3          ○
□    え   悪    1       ○
□    お   良    2    ○
□    か   悪    3       ○
□    き   普通   1          ○
□    く   悪    2       ○
□    け   良    3    ○

--------------

〈別シート〉
条件①-1  条件①-2  条件①-3
  あ     お    け
  き     い    う
  え     く    か

  A    B    C
  あ   い   う
  お   え   き
  け   か
      く

--------------

≪やりたい事≫ 
知識がないので可能かどうかもわかりません。。また、分かり難かったらすみませんm(__)m

◆【条件①】の1、2、3毎に【名前】をまとめたい。

◆【OPEN】のチェックボックスにチェックが入った【名前】のみ別シートに反映するようにしたい。※チェックボックスの作成方法はわかりますが、それを抽出・反映させる方法がわかりません。

◆【レベル】の順番で並び変わるようにしたい。良⇒普通⇒悪。良、の中での順番は不問です。

◆別シートで、例【条件①-1】の数が3から4に増えた時、自動的に行が追加されるようにしたい。

◆【ABC】毎に、チェックをつけた名前を抽出し別シートに表示させたい。項目はDEFと増える可能性があります。

-----------------------------

≪質問に対しての回答≫

配列数式①
=IFERROR(INDEX(データベース!$B$1:$B$1000,MATCH(SMALL(IF((データベース!$A$1:$A$1000="✓")*(データベース!$D$1:$D$1000=COLUMN(A1)),データベース!$I$1:$I$1000),ROW(A1)),データベース!$I$1:$I$1000,0)),"")

配列数式なのでCtrl+Shift+Enterで確定 → 列・行方向にフィル&コピー!


配列数式②
=IFERROR(INDEX(データベース!$B$1:$B$1000,MATCH(SMALL(IF((データベース!$A$1:$A$1000="✓")*(データベース!E$1:E$1000="○"),データベース!$I$1:$I$1000),ROW(A1)),データベース!$I$1:$I$1000,0)),"")

同じく配列数式の操作 → 列・行方向にフィル&コピー!
これでA列にチェックが入っているデータのみが表示されます。
※ 数式内の「✓」はA列に入る「✓」にしてください。

数式③
=IF(C2="","",IF(C2="良",ROW()/10000,IF(C2="普通",ROW()/100,ROW())))

-----------------------------

☆追加で聞きたい事☆

・条件①が1,2,3ではなく、田中,佐藤,鈴木など別の名称となった場合の式はどうなりますか?

・条件①の項目が増えた場合はどうなりますか?

・A,B,Cの項目がD,E,Fと増えた場合はどのような式になりますか?

・レベルが上から順にA⇒B⇒C⇒Dとなった場合はどのような式になりますか?


以上、何卒宜しくお願い致します。

A 回答 (3件)

こんばんは!



https://oshiete.goo.ne.jp/qa/10003953.html

↑のサイトの関連質問ですね。

>・レベルが上から順にA⇒B⇒C⇒Dとなった場合はどのような式になりますか?
がいまいち判らないのでそれ以外の回答になります。

今回は↓の画像のように作業列をもう1列増やします。
これはD列項目を重複なしに表示させるための作業列になります。
作業列L2は前回の数式そのままで
=IF(C2="","",IF(C2="良",ROW()/10000,IF(C2="普通",ROW()/100,ROW())))
としておきます。

作業列2のM2セルは
=IF(COUNTIF(D$2:D2,D2)=1,ROW(),"")
という数式を入れ、両作業列ともこれ以上データはない!というくらいまで下へコピー!

Sheet2のA1セルに
=IFERROR(INDEX(データベース!$D:$D,SMALL(データベース!$M:$M,COLUMN(A1))),"")
という数式を入れ右へフィル&コピー!

A2セルに
=IFERROR(INDEX(データベース!$B$1:$B$1000,MATCH(SMALL(IF((データベース!$A$1:$A$1000="✓")*(データベース!$D$1:$D$1000=A$1),データベース!$L$1:$L$1000),ROW(A1)),データベース!$L$1:$L$1000,0)),"")

配列数式なのでCtrl+Shift+Enterで確定! → フィルハンドルで列・行方向にコピー!

H2セルに
=IFERROR(INDEX(データベース!$B$1:$B$1000,MATCH(SMALL(IF((データベース!$A$1:$A$1000="✓")*(データベース!E$1:E$1000="○"),データベース!$L$1:$L$100),ROW(A1)),データベース!$L$1:$L$1000,0)),"")

これも配列数式 → 列・行方向にフィル&コピー!

これで画像のような感じになります。m(_ _)m
「※再アップ※助けて下さい!!「エクセルの」の回答画像1
    • good
    • 0
この回答へのお礼

tom04さん

本当にいつもありがとうございますm(__)m
非常に助かっています!

今回の話に挙がらなかった、

レベルが上から順にA⇒B⇒C⇒Dとなった場合はどのような式になりますか?

⇒これは、レベルが良・普通・悪ではなく、4段階【A・B・C・D ※一番上のレベルがA、それ以降はB⇒C⇒Dの順】となった場合、どのような式になるかお聞きしたいです。これでわかりますか?

お礼日時:2017/11/20 18:38

No.1です。



前回の画像の配置だと、C列がレベルが A~D まである!というコトですね。

作業列L2の数式を
=IF(C2="","",ROW()/INDEX({1000000000,1000000,1000,1},MATCH(C2,{"A","B","C","D"},0)))
に変更してください。
(本来であれば 10^9,10^6,10^3,1 という並びにしたかったのですが、Excel的には文字列として扱われるみたいなので、必要数分だけ「0」を並べてみました。)

M列の数式はそのままで大丈夫です。

Sheet2のA2セルの数式もそのままでOKです。

そしてH2セルも数式も基本的にはそのままで良いのですが、前回の数式内で「0」が一つ少ない部分があったので
もう一度数式を載せておきます。

=IFERROR(INDEX(データベース!$B$1:$B$1000,MATCH(SMALL(IF((データベース!$A$1:$A$1000="✓")*(データベース!E$1:E$1000="○"),データベース!$L$1:$L$1000),ROW(A1)),データベース!$L$1:$L$1000,0)),"")

※ Sheet2の数式はどちらも配列数式なので、
Ctrl+Shift+Enterで確定してください。m(_ _)m
    • good
    • 0

No.1・2です。



たびたびごめんなさい。
No.2の
>Sheet2の数式はどちらも配列数式なので・・・
はA2・H2セルになります。

A1セルは配列数式ではありません。m(_ _)m
    • good
    • 0
この回答へのお礼

いつも本当にありがとうございますm(__)m

もう一点質問したいのですが、レベル(A~D)毎に色付けする事は出来ますか?

A:オレンジ
B:ブルー
C:ピンク
D:グリーン など

Sheet2に反映させた時に自動的に色をつけたいと思いまして

お礼日時:2017/12/28 11:31

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