excel
[HOME] [MAIL]

CEL436.曜日に対応した入力 質問者:東京都setさん
いつも大変参考にさせていただいています。
横に日にちと曜日、縦に氏名を入れて勤務表を作成しているのですが、土曜日と日曜日にはそれぞれの社員の勤務時間記入欄に、自動的に"休"が入るようには出来るのでしょうか?

?????????????????????????????????????????????

A:
マクロ初心者の兵庫yuhkiです。

マクロで処理しちゃいましょう。
日付が1行目(B1セルから)、曜日が2行目(B2セルから)、氏名はA3セルから下方向に入力されているとします。

1)ALTキー+F11キーでVBEを起動。
2)メニューの[挿入]−[標準モジュール]を選択。
3)真っ白いページが出てきますので、以下の内容をコピペ。

Sub macro1()
'マクロ名macro1
Dim myrow As Long, mycol As Long, i As Integer
'各変数の定義
myrow = Range("a65535").End(xlUp).Row
'氏名が入力されている最終行を取得
mycol = Range("iv1").End(xlToLeft).Column
'日付が入力されている最終列を取得
For i = 2 To mycol Step 1
    If Cells(2, i) = "土" Or Cells(2, i) = "日" Then
        Range(Cells(3, i), Cells(myrow, i)).Value = "休"
    End If
Next i
'2行目の曜日が「土」、「日」の場合は、「休」を入力。
End Sub

4)EXCELに戻って、実行したいシートを選択。
5)ALTキー+F8キーでマクロ選択のボックスが出ますので、macro1を選択して実行。

これで休という文字が入力されると思います。
選択されているシートに対して動きます。

シートの内容を変えてしまうので、できれば、ブックのコピーをとっておいてから試してみてください。

ではでは。
[質問一覧] [HOME]

CEL437.全角数字を半角に 質問者:東京都rururuさん
エクセルに入力した任意の文字列内の数字が全角、半角混ざっています。
これをすべて半角で統一することはできますか?
同じように、全角の英字を半角に統一できますか?
現在はすべて手入力で修正しています。
例)(主婦・23歳)→(主婦・23歳)
  (主婦・32歳)
  (OL・20歳)
  (OL・38歳)→(OL・38歳)

?????????????????????????????????????????????

A:
関数ASCは、全角 (2 バイト) の英数カナ文字を半角 (1 バイト) の文字に変換します。

作業列を作り、=ASC(変更したいセル)でOKです。
カタカナが無ければこれでOKです。

作業列をコピーし、元の列に[形式を選択して貼り付け]の「値」を選択します。
作業列を削除すればよいかと思います。

もし、カタカナがある場合は、原始的な方法ですが、これをコピーして、Wordに貼り付け、Wordですべて変更されて、もう一度コピーしてExcelに貼り付け直すという方法はいかかがでしょう。

Wordの操作は、貼り付けたものを選択して、メニューバーの[書式]→[文字種の変更]をクリックされて、半角の前のラジオボタンをチェックし、「OKボタン」で変更できます。
[質問一覧] [HOME]

CEL438.在庫表の関数式 質問者:長野県馬noriさん
在庫表で
      列A   列B   列C    列D
 行1   単価  入庫数 出庫数  在庫数
 行2    2   1000          式?
 行3              500    ↓コピー

とした時に列D2に入る式を教えてください。
SUM?MAX?IF?入庫数"?",在庫数−出庫数、こんがらがってきてしまい、やはりアクセスを使った方が無難なのか悩んでいます…ぜひ!お力をお願いします…

?????????????????????????????????????????????

A:
長野県馬noriさん、こんにちは。
たぶん次の式でうまくいくと思います。

D2に、
 =IF(COUNT(B2:C2),SUM(B$2:B2)-SUM(C$2:C2),"")
として、下にコピーします。

式の意味は、もし、入庫数、出庫数の範囲で数値を COUNT し、答えが0以外の数値なら TRUE となり、次のSUM 関数での計算をします。
どちらにも数値が入っていなければ、答えは0(FALSE)となり空白をセットします。
SUM 関数で、式の結果が表示された行までの入庫数の範囲を合計し、そこから同じくその行までの出庫数の範囲を合計したものを引きます。
結果、在庫数が求められます。

こんなもんでどうでしょうか?
[質問一覧] [HOME]

CEL439.名簿から名札を作る 質問者:tajimaさん
名簿(住所・氏名・住所・その他)が記載されているExcelシートから、名前だけを抜き出して、A4サイズ・5〜6名づつの名札を作りたいのですが、どのようにしたら良いのでしょうか?できますか?
イベントでの座席表示(座席の背に貼る)に使う名札ですが、今回は手書きではなくPCで処理できたらと思いました。
ちなみに90名分・横置きにして縦書きの名札です。

?????????????????????????????????????????????

A:
兵庫yuhkiです。

出来ますよ(多分)。以下の方法はいかがでしょうか?

1)用紙設定をA4にして、SHEET1にフォーマットを作成。
名札が規則正しく並ぶと思いますので、ここでは名前を入力するセルが5行目、10行目と5行ごとになると仮定します。
名前は、名簿.xlsというブックのSHEET1のA列に入力されているとします。

2)名前が入るセルに以下の数式を入力。
 =INDIRECT("[名簿.xls]SHEET1!A"&ROW()/5)
行番号を用いていますので、環境に応じて式を変更してみてください。
INDIRECT関数は、閉じているブックに対しては使用できませんので、印刷される場合は、必ず名簿が記録されているブックを開いておいてください。

関数の説明です。
INDIRECT関数−参照文字列によって指定されるセルに入力されている文字列を介して、間接的なセルの指定を行います。
書式は、=INDIRECT(参照文字列,参照形式)です。

ROW関数−行番号を返します。
書式は、=ROW()です。
()内にセルを指定しなければ、式が入力されている行の番号を返します。

仮定ばっかりで、ご希望に合ってないかも。

ではでは。
[質問一覧] [HOME]

CEL440.関数の貼り付け 質問者:神奈川県kenichiさん
Excelの関数の使い方でお尋ねします。
乱数の一種なのか如何かは分かりませんが次のようなことをExcelを使って出来ると思うのですがやり方が分かりません。
PC用語を使っての質問が出来ないので何をやりたいかのみを下記します。
テニスのW(ダブルス)の試合では1ペアー(2り1組)で相手のペアーと対戦します。
そこで質問ですが
A)先ず6人がランダムにペアーを組むには?
1番から6番まで番号を決める。
最初は1,2番対3,4番
次は5,6番対1,3番
その次は、又その次は、となると乱数か関数を使わないと分からなくなってきます。

B)8人の場合
C)9人の場合
D)10人の場合

こんな時Excelで関数の貼り付けからどうやって割り出すのか分かりません。
Excelの基本的な操作は分かるのですが以上のことが出来ません。
のでご教授願います。

?????????????????????????????????????????????

A:
兵庫yuhkiです。

以下の方法はいかがでしょうか?
リーグ戦表を作成します。
1)A1セルにその日の人数を入力。
2)B1セルに102と入力。
 4桁で組み合わせを表します。1番目の人と2番目の人は0102とします。
 ただし、最初の0は表示されませんので、102となります。
3)C1セルに以下の式を入力。
 =IF(B1>=($A$1-1)*100+$A$1,"",IF(VALUE(RIGHT(B1,2))<$A$1,B1+1,INT((B1+100)/100)*100+INT((B1+100)/100)+1))
4)この式を横方向にオートフィル。
5)B2セルから数値があるセルまで選択してコピー。
6)A2セルを選択して、右クリック−[形式を選択して貼り付け]−[値]−[行列を入れ替える]でOK。

これで組み合わせが出来ます。
次に対戦可能な組み合わせのみを抽出します。

7)B2セルに以下の式を入力。
 =IF(OR(B$1=$A2,INT(B$1/100)=INT($A2/100),INT(B$1/100)=MOD($A2,100),MOD(B$1,100)=INT($A2/100),MOD(B$1,100)=MOD($A2,100)),"×","")
 で、表の全てのセルにコピー。
 対戦不可能な組み合わせには×が入ります。
 空白セルの組み合わせを選んでみてください。
 人数が変わったときは、A1セルの数値を変えて、表を広げたり縮めたりしてください。

ご希望に合っているといいのですが・・・

ではでは。
[質問一覧] [HOME]

[HOME] [MAIL]