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

Excelで、複数条件をキーにした値の代入方法を教えて下さい。
言葉ではお伝えづらいので添付の表をご確認頂きたいと思います。

A表(sheet1)には各人員の、月毎の金額、合計値が入っています。

ここから別シートのB表(sheet2)に、値の入っている最終月を代入したいのですが、
条件としては3種類あり、

1.値が12月まで埋まっている場合は「12」を代入
2.値が途中まで埋まっている(その後は空欄)場合は、埋まっている最終月を代入
3.【合計】の欄に0が入っている場合は、ブランクを代入

このような条件になっております。

関数で「if」を繰り返していくと、【合計】含めて13回繰り返す事になるため、
何かすっきりとできる手法があれば、ご教授頂けると有り難いです。

宜しくお願い致します。

「Excel:複数条件の値代入について」の質問画像

A 回答 (8件)

シート2のA1セルには次の式を入力してB1セルまで横にドラッグコピーしたのちに下方にもドラッグコピーします。



=IF(ROW(A1)>COUNTA(Sheet1!$A$2:$A$1000),"",IF(COLUMN(A1)=1,Sheet1!$A2,IF(SUM(Sheet1!$C2:$N2)=0,"",INDEX(Sheet1!$C$1:$N$1,MATCH(10^10,Sheet1!$C2:$N2)))))

この回答への補足

多数の回答、再度御礼申し上げます。

色々と頂いた回答を試した結果、
「間にデータが抜けている場合でも正確に最終月が代入できる」
という事がわかった、KURUMITO様の提示式を採用させて頂きました。

本当に有り難うございました。

補足日時:2013/07/05 15:00
    • good
    • 0

質問通りの条件で、例示のように空白セルまでは数値が連続して入力されているなら以下のような数式がわかりよいかもしれません。



=IF(VLOOKUP(A2,Sheet1!A:B,2,0)=0,"",INDEX(Sheet1!$C$1:$N$1,COUNT(Sheet1!C2:N2)))
    • good
    • 0

No.5 KURUMITOさんの、



MATCH(10^10,Sheet1!$C2:$N2)

には脱帽しました。

条件1&2は、これだけで実現出来てしまいます。

この方法に一票。
    • good
    • 0

No.2です!


たびたびごめんなさい。

前回の数式は途中の列に空白セルがあっても対応できるように配列数式にしましたが、
C列から必ず列方向(右側)に数値でデータが埋まっていくのであれば
配列数式にする必要はありません。、

Sheet2のB2セルに
=IF(COUNT(Sheet1!C2:N2),INDEX(Sheet1!C$1:N$1,,COUNT(Sheet1!C2:N2)),"")
としてオートフィルで下へコピーしてみてください。

何度も失礼しました。m(_ _)m
    • good
    • 0

先の回答者様のご回答にOFFSET関数を加えて、



=IF(Sheet1!B2=0,"",OFFSET(Sheet1!$B$1,0,COUNT(Sheet1!C2:N2)))

でどうでしょう。
    • good
    • 0

シート2のB1に、


=IF(Sheet1!B2=0,"",COUNT(Sheet1!C2:N2))
→下へコピー

でいいのではないでしょうか。

ただし、
・1~3月空白、4~9月数値、10~12月空白
のような場合は、No.1さんのような回避策が必要になりますが。

この回答への補足

多数のご回答、ありがとうございます。

大変申し訳ありませんが、質問提示に不足がありました。
サンプルでは「1月~12月」の表記になっていますが、
実際の表は「1月~12月」であったり「4月~翌3月」
であったりする為、count関数は使用できない状態です。
(その為、あくまでC1~N1までの値を代入する事になります)
誤解を招く表記ですみませんでした。

もし他に手法があれば、ご教授頂けますでしょうか…?

補足日時:2013/07/04 16:21
    • good
    • 0

こんにちは!


一例です。

Sheet2のA列はSheet1の名前順に入力済みだとします。

Sheet2のB1セルに
=IF(COUNT(Sheet1!C2:N2),INDEX(Sheet1!C$1:N$1,,MAX(IF(Sheet1!C2:N2<>"",COLUMN(Sheet1!A1:L1)))),"")

これは配列数式になってしまいますので、Shift+Ctrl+Enterで確定!
この画面からコピー&ペーストする場合は
上記数式をコピー → B1セルを選択 → 数式バー内をクリック → 貼り付け
そのまま(編集可能のまま)Shift+Ctrlキーを押しながらEnterキーで確定!
数式の前後に{ }マークが入り配列数式になります。

このB1セルをオートフィルで下へコピーしてみてください。m(_ _)m
    • good
    • 0

空白セル数をカウントし、12から引けば結果が得られますが、この方法は仮に2月から始まる場合には、1月セルに空白セルがあると成立しませんので、1月セルには0を入力する必要があります。



sheet2のB2式
=IF(Sheet1!B2>0,12-COUNTBLANK(Sheet1!C2:N2),0)
    • good
    • 0

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