Excelで、複数条件をキーにした値の代入方法を教えて下さい。
言葉ではお伝えづらいので添付の表をご確認頂きたいと思います。
A表(sheet1)には各人員の、月毎の金額、合計値が入っています。
ここから別シートのB表(sheet2)に、値の入っている最終月を代入したいのですが、
条件としては3種類あり、
1.値が12月まで埋まっている場合は「12」を代入
2.値が途中まで埋まっている(その後は空欄)場合は、埋まっている最終月を代入
3.【合計】の欄に0が入っている場合は、ブランクを代入
このような条件になっております。
関数で「if」を繰り返していくと、【合計】含めて13回繰り返す事になるため、
何かすっきりとできる手法があれば、ご教授頂けると有り難いです。
宜しくお願い致します。
No.5ベストアンサー
- 回答日時:
シート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様の提示式を採用させて頂きました。
本当に有り難うございました。
No.8
- 回答日時:
質問通りの条件で、例示のように空白セルまでは数値が連続して入力されているなら以下のような数式がわかりよいかもしれません。
=IF(VLOOKUP(A2,Sheet1!A:B,2,0)=0,"",INDEX(Sheet1!$C$1:$N$1,COUNT(Sheet1!C2:N2)))
No.7
- 回答日時:
No.5 KURUMITOさんの、
MATCH(10^10,Sheet1!$C2:$N2)
には脱帽しました。
条件1&2は、これだけで実現出来てしまいます。
この方法に一票。
No.6
- 回答日時:
No.2です!
たびたびごめんなさい。
前回の数式は途中の列に空白セルがあっても対応できるように配列数式にしましたが、
C列から必ず列方向(右側)に数値でデータが埋まっていくのであれば
配列数式にする必要はありません。、
Sheet2のB2セルに
=IF(COUNT(Sheet1!C2:N2),INDEX(Sheet1!C$1:N$1,,COUNT(Sheet1!C2:N2)),"")
としてオートフィルで下へコピーしてみてください。
何度も失礼しました。m(_ _)m
No.4
- 回答日時:
先の回答者様のご回答にOFFSET関数を加えて、
=IF(Sheet1!B2=0,"",OFFSET(Sheet1!$B$1,0,COUNT(Sheet1!C2:N2)))
でどうでしょう。
No.3
- 回答日時:
シート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までの値を代入する事になります)
誤解を招く表記ですみませんでした。
もし他に手法があれば、ご教授頂けますでしょうか…?
No.2
- 回答日時:
こんにちは!
一例です。
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
No.1
- 回答日時:
空白セル数をカウントし、12から引けば結果が得られますが、この方法は仮に2月から始まる場合には、1月セルに空白セルがあると成立しませんので、1月セルには0を入力する必要があります。
sheet2のB2式
=IF(Sheet1!B2>0,12-COUNTBLANK(Sheet1!C2:N2),0)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) 従業員増減対応で当番種類の増減対応な当番表 21 2022/07/19 07:30
- Excel(エクセル) エクセルで割り振りをする方法 7 2022/08/02 14:02
- Excel(エクセル) Excelについて A1からA12まで、1月〜12月と入力し、 B1からB12の範囲に、C1とD1に 4 2022/05/26 22:48
- Java Java 南京錠 2 2023/02/04 11:46
- Excel(エクセル) エクセルで最初に値が入っているセルを見つける方法はありますか? 2 2023/07/18 14:58
- Excel(エクセル) エクセル 3つの値の中からデータを抽出させる方法 4 2023/08/24 11:00
- Excel(エクセル) Excel 値を返す数式についてです 3 2022/11/21 20:08
- Excel(エクセル) Excel2019 列と列(2列)の数値の重複を調べたい 1 2023/05/11 13:35
- Excel(エクセル) エクセル 条件に合う日付に入力された時間数の合計したい 4 2022/06/17 22:18
- JavaScript 変数宣言と初期値代入の場所について 3 2022/10/31 19:09
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【スプレドシート】IMPORTRANGE...
-
英数字のみ全角から半角に変換
-
【Microsoft Forms】回答を削除...
-
会社PCのメールが更新されない
-
マイクロソフト 一時使用コード...
-
Outlook で宛先が複数の場合の人数
-
【スプレッドシート】指定の日...
-
Microsoft Formsの「個人情報や...
-
Microsoft Edgeの「ニュースと...
-
VLOOKUP関数について
-
【Excel VBA】PDFを作成して,...
-
エクセルでXLOOKUP関数...
-
outlookのメールが固まってしま...
-
teams設定教えて下さい。 ①ビデ...
-
Microsoft365で写真をアルバム...
-
Microsoft Officeに似たキング...
-
会社におけるOfficeライセンス...
-
【スプレッドシート】白色のセ...
-
Excel VBA 日程表からスケジュ...
-
VBAファイルの保存先について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【スプレドシート】IMPORTRANGE...
-
マイクロソフト 一時使用コード...
-
英数字のみ全角から半角に変換
-
Office2021を別のPCにインスト...
-
Microsoft Formsの「個人情報や...
-
officeビジネス型のワードやエ...
-
会社PCのメールが更新されない
-
【スプレッドシート】指定の日...
-
Microsoft Officeを2台目のPCに...
-
何このステータスバー
-
2つのシートの一致する行のセ...
-
会社のTeamsのことで相談です。...
-
エクセルにリンクされるのをし...
-
Windows 11で、IME言語バー(IM...
-
office2010とoffice365の共存で...
-
Microsoftのパソコンです。 エ...
-
エクセルでXLOOKUP関数...
-
Excel関数について質問ですm(__)m
-
VBA
-
自分の専門分野の仕事。初見で...
おすすめ情報