- 締切済み
エクセル関数で教えてください。
エクセルでB列には商品名(セルB1にみかんセルB2にみかんセルB3にみかんセルB4に柿セルB5に柿セルB6に柿、C列にはみかん柿の数量ランク(例:C1に1~、C2に10~、C3に100~と記入)、D列にはC列のランク毎の単価が表示されています。(D1に1000、D2に800、D3に500、D4に1500など) この表を、ほかのシートのA1にみかん、A2に柿と入力させて、B1に関数を入力してB1セル内で数量ランクの1~1000、10~800、100~500と横一列に表示させたいのですが可能でしょうか? どのような関数が適当でしょうか? このパソコンはエクセル使えず、添付できずわかりにくい説明で申し訳ないのですがどなたか教えてください。よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- mar00
- ベストアンサー率36% (158/430)
関数という事ですが、データの量が量が多い時の事を考えて マクロにしました。 商品名でソートされている事が前提です。 Sub Macro1() Set WS01 = Sheets("Sheet1") 'ここを変更 Set WS02 = Sheets("Sheet2") 'ここを変更 COUNTER = 1 For INP = 1 To WS01.Cells(Rows.Count, 2).End(xlUp).Row If WS01.Range("B" & INP) = WS01.Range("B" & INP + 1) Then SURYO1 = SURYO1 & WS01.Range("C" & INP) & WS01.Range("D" & INP) & "、" Else SURYO2 = WS01.Range("C" & INP) & WS01.Range("D" & INP) WS02.Range("A" & COUNTER) = WS01.Range("B" & INP) WS02.Range("B" & COUNTER) = SURYO1 & SURYO2 SURYO1 = "" COUNTER = COUNTER + 1 End If Next INP End Sub シート名は適宜変更して下さい。 Sheet1がデータの入力されているシート、Sheet2が表示するシートです。
- friends12
- ベストアンサー率100% (3/3)
"&"を使うとセルとセルの内容を連結して表示できます。 質問の例だと、 =Sheet1!C1&Sheet1!D1 と指定すると、「1~1000」と表示されると思います。(「Sheet1」の部分は適正なシート名に変更して下さい) 同様に"&"を使って繋げれば一つのセル内に複数のセル内容を全て横一列で記載できます。 =Sheet1!C1&Sheet1!D1&"、"&Sheet1!C2&Sheet1!D2&"、"&Sheet1!C3&Sheet1!D3 でいけると思います。(「、」を再現するために"、"という部分を入れています) 見易さや管理上の分かりやすさ的にはA1からA3までセル結合して「みかん」と入力、B1~B3にそれぞれ内容を入力する方がいい気はしますが、質問者さんの仕事上の必然性次第ですね。頑張って下さい。