- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは! >氏名がたとえば100人分あったり、途中で氏名の一部が変更された場合等・・・ 関数ではかなり厄介だと思います。 そこでVBAでの一例です。 1行目項目に必ず「合計」という項目があるとし、その右隣りの列に表示させるようにしています。 画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面のカーソルが点滅しているところに ↓のコードをコピー&ペースト → Excel画面に戻りマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub Sample1() 'この行から Dim i As Long, j As Long, lastCol As Long, str As String lastCol = WorksheetFunction.Match("合計", Rows(1), False) For i = 2 To Cells(Rows.Count, "A").End(xlUp).Row For j = 2 To lastCol - 1 If Cells(i, j) > 0 Then str = str & Cells(1, j) & "," End If Next j If Len(str) > 0 Then Cells(i, lastCol + 1) = Left(str, Len(str) - 1) End If str = "" Next i Columns.AutoFit End Sub 'この行まで ※ 関数でないのでデータ変更があるたびにマクロを実行する必要があります。m(_ _)m
その他の回答 (3)
- bunjii
- ベストアンサー率43% (3589/8249)
- keithin
- ベストアンサー率66% (5278/7941)
- FEX2053
- ベストアンサー率37% (7991/21371)
単純に =IF(B2>0,"山本,","")& IF(C2>0,"佐藤,","")& IF(D2>0,"川崎,","")& IF(E2>0,"田中,","") って話なんじゃ?
お礼
回答ありがとうございます。
補足
説明足らずですいません。 氏名がたとえば100人分あったり、途中で氏名の一部が変更された場合等にB1,C1,D1,E2~AA1の部分を変更して、簡単に反映出来る方法はないですか?
お礼
回答ありがとうございます。 こんな方法があったんですね。 私のイメージに一番近いです。 しかし、言葉の通じない部下に通じるか問題ですが・・・。